Created
November 1, 2014 12:56
-
-
Save methane/328f0c6a0bb193f77b03 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ROUTINE ====================== net/http.ReadRequest | |
11 403 samples (flat, cumulative) 27.2% of total | |
-------------------- /home/ec2-user/local/go/src/net/http/request.go | |
2 2 591: func ReadRequest(b *bufio.Reader) (req *Request, err error) { | |
. . 447b70: FS MOVQ FS:0xfffffff0, CX | |
2 2 447b79: LEAQ 0xffffff30(SP), AX | |
. . 447b81: CMPQ 0x10(CX), AX | |
. . 447b85: JA 0x447b8e | |
. . 447b87: CALL runtime.morestack_noctxt(SB) | |
. . 447b8c: JMP net/http.ReadRequest(SB) | |
. . 447b8e: SUBQ $0x150, SP | |
. . 447b95: MOVQ $0x0, 0x160(SP) | |
. . 447ba1: MOVQ $0x0, 0x168(SP) | |
. . 447bad: MOVQ $0x0, 0x170(SP) | |
. . 447bb9: MOVQ $0x0, 0x168(SP) | |
. . 447bc5: MOVQ $0x0, 0x170(SP) | |
. . 447bd1: MOVQ $0x0, 0x160(SP) | |
. 13 593: tp := newTextprotoReader(b) | |
. . 447bdd: MOVQ 0x158(SP), BX | |
. . 447be5: MOVQ BX, 0(SP) | |
. 13 447be9: CALL net/http.newTextprotoReader(SB) | |
. . 447bee: MOVQ 0x8(SP), BX | |
. . 447bf3: MOVQ BX, 0x50(SP) | |
. 20 594: req = new(Request) | |
. . 447bf8: LEAQ 0x2d4941(IP), BX | |
. . 447bff: MOVQ BX, 0(SP) | |
. 20 447c03: CALL runtime.newobject(SB) | |
. . 447c08: MOVQ 0x8(SP), BX | |
. . 447c0d: MOVQ BX, 0x160(SP) | |
. . 597: var s string | |
. . 447c15: MOVQ $0x0, 0x80(SP) | |
. . 447c21: MOVQ $0x0, 0x88(SP) | |
1 133 598: if s, err = tp.ReadLine(); err != nil { | |
. . 447c2d: MOVQ 0x50(SP), BX | |
. . 447c32: MOVQ BX, 0(SP) | |
. 132 447c36: CALL net/textproto.(*Reader).ReadLine(SB) | |
1 1 447c3b: MOVQ 0x8(SP), BX | |
. . 447c40: MOVQ BX, 0x80(SP) | |
. . 447c48: MOVQ 0x10(SP), BX | |
. . 447c4d: MOVQ BX, 0x88(SP) | |
. . 447c55: MOVQ 0x18(SP), BX | |
. . 447c5a: MOVQ BX, 0x168(SP) | |
. . 447c62: MOVQ 0x20(SP), BX | |
. . 447c67: MOVQ BX, 0x170(SP) | |
. . 447c6f: CMPQ $0x0, 0x168(SP) | |
. . 447c78: JE 0x447c94 | |
. . 599: return nil, err | |
. . 447c7a: MOVQ $0x0, 0x160(SP) | |
. . 447c86: NOPL | |
. . 447c87: CALL runtime.deferreturn(SB) | |
. . 447c8c: ADDQ $0x150, SP | |
. . 447c93: RET | |
. 2 606: }() | |
. . 447c94: MOVQ $0x0, 0x138(SP) | |
. . 447ca0: MOVQ $0x0, 0x140(SP) | |
. . 447cac: MOVQ $0x0, 0x148(SP) | |
. . 447cb8: LEAQ 0x138(SP), BX | |
. . 447cc0: LEAQ 0x1cb49(IP), BP | |
. . 447cc7: MOVQ BP, 0(BX) | |
. . 447cca: LEAQ 0x50(SP), BP | |
. . 447ccf: MOVQ BP, 0x8(BX) | |
. . 447cd3: LEAQ 0x168(SP), BP | |
. . 447cdb: MOVQ BP, 0x10(BX) | |
. . 447cdf: PUSHL BX | |
. . 447ce0: PUSHL $0x0 | |
. 2 447ce2: CALL runtime.deferproc(SB) | |
. . 447ce7: POPL CX | |
. . 447ce8: POPL CX | |
. . 447ce9: TESTQ AX, AX | |
. . 447cec: JNE 0x44868c | |
. 13 609: req.Method, req.RequestURI, req.Proto, ok = parseRequestLine(s) | |
. . 447cf2: MOVQ 0x80(SP), BX | |
. . 447cfa: MOVQ BX, 0(SP) | |
. . 447cfe: MOVQ 0x88(SP), BX | |
. . 447d06: MOVQ BX, 0x8(SP) | |
. 11 447d0b: CALL net/http.parseRequestLine(SB) | |
. . 447d10: MOVQ 0x10(SP), DX | |
. . 447d15: MOVQ 0x18(SP), CX | |
. . 447d1a: MOVQ 0x20(SP), BX | |
. . 447d1f: MOVQ BX, 0xf0(SP) | |
. . 447d27: MOVQ 0x28(SP), BX | |
. . 447d2c: MOVQ BX, 0xf8(SP) | |
. . 447d34: MOVQ 0x30(SP), BX | |
. . 447d39: MOVQ BX, 0xe0(SP) | |
. . 447d41: MOVQ 0x38(SP), BX | |
. . 447d46: MOVQ BX, 0xe8(SP) | |
. . 447d4e: MOVZX 0x40(SP), BX | |
. . 447d53: MOVL BL, 0x4e(SP) | |
. . 447d57: MOVQ 0x160(SP), BX | |
. . 447d5f: MOVQ BX, 0(SP) | |
. . 447d63: CMPQ $0x0, 0(SP) | |
. . 447d68: JE 0x448680 | |
. . 447d6e: MOVQ DX, 0x100(SP) | |
. . 447d76: MOVQ DX, 0x8(SP) | |
. . 447d7b: MOVQ CX, 0x108(SP) | |
. . 447d83: MOVQ CX, 0x10(SP) | |
. 2 447d88: CALL runtime.writebarrierstring(SB) | |
. . 447d8d: MOVQ 0x160(SP), BX | |
. . 447d95: MOVQ BX, 0(SP) | |
. . 447d99: CMPQ $0x0, 0(SP) | |
. . 447d9e: JE 0x448674 | |
. . 447da4: ADDQ $0xb8, 0(SP) | |
. . 447dac: MOVQ 0xf0(SP), BX | |
. . 447db4: MOVQ BX, 0x8(SP) | |
. . 447db9: MOVQ 0xf8(SP), BX | |
. . 447dc1: MOVQ BX, 0x10(SP) | |
. . 447dc6: CALL runtime.writebarrierstring(SB) | |
. . 447dcb: MOVQ 0x160(SP), BX | |
. . 447dd3: MOVQ BX, 0(SP) | |
. . 447dd7: CMPQ $0x0, 0(SP) | |
. . 447ddc: JE 0x448668 | |
. . 447de2: ADDQ $0x18, 0(SP) | |
. . 447de7: MOVQ 0xe0(SP), BX | |
. . 447def: MOVQ BX, 0x8(SP) | |
. . 447df4: MOVQ 0xe8(SP), BX | |
. . 447dfc: MOVQ BX, 0x10(SP) | |
. . 447e01: CALL runtime.writebarrierstring(SB) | |
. . 610: if !ok { | |
. . 447e06: CMPL $0x0, 0x4e(SP) | |
. . 447e0b: JNE 0x447f15 | |
. . 611: return nil, &badStringError{"malformed HTTP request", s} | |
. . 447e11: LEAQ 0x29be48(IP), BX | |
. . 447e18: MOVQ BX, 0(SP) | |
. . 447e1c: CALL runtime.newobject(SB) | |
. . 447e21: MOVQ 0x8(SP), CX | |
. . 447e26: CMPQ $0x0, CX | |
. . 447e2a: JE 0x447f0e | |
. . 447e30: LEAQ 0(CX), BP | |
. . 447e33: LEAQ 0x338aa6(IP), BX | |
. . 447e3a: MOVQ BP, DI | |
. . 447e3d: MOVQ BX, SI | |
. . 447e40: MOVSQ DS:0(SI), ES:0(DI) | |
. . 447e42: MOVSQ DS:0(SI), ES:0(DI) | |
. . 447e44: MOVQ CX, 0x58(SP) | |
. . 447e49: MOVQ CX, 0(SP) | |
. . 447e4d: CMPQ $0x0, 0(SP) | |
. . 447e52: JE 0x447f02 | |
. . 447e58: ADDQ $0x10, 0(SP) | |
. . 447e5d: MOVQ 0x80(SP), BX | |
. . 447e65: MOVQ BX, 0x8(SP) | |
. . 447e6a: MOVQ 0x88(SP), BX | |
. . 447e72: MOVQ BX, 0x10(SP) | |
. . 447e77: CALL runtime.writebarrierstring(SB) | |
. . 447e7c: MOVQ 0x58(SP), BX | |
. . 447e81: MOVQ BX, 0x58(SP) | |
. . 447e86: MOVQ 0x4af1f3(IP), CX | |
. . 447e8d: XORL BP, BP | |
. . 447e8f: CMPQ BP, CX | |
. . 447e92: JE 0x447ed3 | |
. . 447e94: MOVQ 0x58(SP), DX | |
. . 447e99: MOVQ $0x0, 0x160(SP) | |
. . 447ea5: MOVQ CX, 0xd0(SP) | |
. . 447ead: MOVQ CX, 0x168(SP) | |
. . 447eb5: MOVQ DX, 0xd8(SP) | |
. . 447ebd: MOVQ DX, 0x170(SP) | |
. . 447ec5: NOPL | |
. . 447ec6: CALL runtime.deferreturn(SB) | |
. . 447ecb: ADDQ $0x150, SP | |
. . 447ed2: RET | |
. . 447ed3: LEAQ 0x27a526(IP), BX | |
. . 447eda: MOVQ BX, 0(SP) | |
. . 447ede: LEAQ 0x262efb(IP), BX | |
. . 447ee5: MOVQ BX, 0x8(SP) | |
. . 447eea: LEAQ 0x4af18f(IP), BX | |
. . 447ef1: MOVQ BX, 0x10(SP) | |
. . 447ef6: CALL runtime.typ2Itab(SB) | |
. . 447efb: MOVQ 0x18(SP), CX | |
. . 447f00: JMP 0x447e94 | |
. . 447f02: MOVL AX, 0 | |
. . 447f09: JMP 0x447e58 | |
. . 447f0e: MOVL AX, 0(CX) | |
. . 447f10: JMP 0x447e30 | |
1 1 613: rawurl := req.RequestURI | |
. . 447f15: MOVQ 0x160(SP), BX | |
1 1 447f1d: CMPQ $0x0, BX | |
. . 447f21: JE 0x448661 | |
. . 447f27: MOVQ 0xb8(BX), BP | |
. . 447f2e: MOVQ BP, 0x90(SP) | |
. . 447f36: MOVQ 0xc0(BX), SI | |
. . 447f3d: MOVQ SI, 0x98(SP) | |
1 4 614: if req.ProtoMajor, req.ProtoMinor, ok = ParseHTTPVersion(req.Proto); !ok { | |
. . 447f45: MOVQ 0x160(SP), DI | |
. . 447f4d: CMPQ $0x0, DI | |
. . 447f51: JE 0x44865a | |
. . 447f57: LEAQ 0x18(DI), SI | |
. . 447f5b: LEAQ 0(SP), DI | |
. . 447f5f: MOVSQ DS:0(SI), ES:0(DI) | |
1 1 447f61: MOVSQ DS:0(SI), ES:0(DI) | |
. 3 447f63: CALL net/http.ParseHTTPVersion(SB) | |
. . 447f68: MOVQ 0x160(SP), BX | |
. . 447f70: MOVQ 0x10(SP), BP | |
. . 447f75: MOVQ BP, 0x28(BX) | |
. . 447f79: MOVQ 0x160(SP), BX | |
. . 447f81: MOVQ 0x18(SP), BP | |
. . 447f86: MOVQ BP, 0x30(BX) | |
. . 447f8a: MOVZX 0x20(SP), BX | |
. . 447f8f: CMPL $0x0, BL | |
. . 447f92: JNE 0x4480ab | |
. . 615: return nil, &badStringError{"malformed HTTP version", req.Proto} | |
. . 447f98: LEAQ 0x29bcc1(IP), BX | |
. . 447f9f: MOVQ BX, 0(SP) | |
. . 447fa3: CALL runtime.newobject(SB) | |
. . 447fa8: MOVQ 0x8(SP), CX | |
. . 447fad: CMPQ $0x0, CX | |
. . 447fb1: JE 0x4480a4 | |
. . 447fb7: LEAQ 0(CX), BP | |
. . 447fba: LEAQ 0x33899f(IP), BX | |
. . 447fc1: MOVQ BP, DI | |
. . 447fc4: MOVQ BX, SI | |
. . 447fc7: MOVSQ DS:0(SI), ES:0(DI) | |
. . 447fc9: MOVSQ DS:0(SI), ES:0(DI) | |
. . 447fcb: MOVQ CX, 0x58(SP) | |
. . 447fd0: MOVQ CX, 0(SP) | |
. . 447fd4: CMPQ $0x0, 0(SP) | |
. . 447fd9: JE 0x448098 | |
. . 447fdf: ADDQ $0x10, 0(SP) | |
. . 447fe4: MOVQ 0x160(SP), DI | |
. . 447fec: CMPQ $0x0, DI | |
. . 447ff0: JE 0x448091 | |
. . 447ff6: LEAQ 0x18(DI), BP | |
. . 447ffa: LEAQ 0x8(SP), DI | |
. . 447fff: MOVQ BP, SI | |
. . 448002: MOVSQ DS:0(SI), ES:0(DI) | |
. . 448004: MOVSQ DS:0(SI), ES:0(DI) | |
. . 448006: CALL runtime.writebarrierstring(SB) | |
. . 44800b: MOVQ 0x58(SP), BX | |
. . 448010: MOVQ BX, 0x58(SP) | |
. . 448015: MOVQ 0x4af064(IP), CX | |
. . 44801c: XORL BP, BP | |
. . 44801e: CMPQ BP, CX | |
. . 448021: JE 0x448062 | |
. . 448023: MOVQ 0x58(SP), DX | |
. . 448028: MOVQ $0x0, 0x160(SP) | |
. . 448034: MOVQ CX, 0xd0(SP) | |
. . 44803c: MOVQ CX, 0x168(SP) | |
. . 448044: MOVQ DX, 0xd8(SP) | |
. . 44804c: MOVQ DX, 0x170(SP) | |
. . 448054: NOPL | |
. . 448055: CALL runtime.deferreturn(SB) | |
. . 44805a: ADDQ $0x150, SP | |
. . 448061: RET | |
. . 448062: LEAQ 0x27a397(IP), BX | |
. . 448069: MOVQ BX, 0(SP) | |
. . 44806d: LEAQ 0x262d6c(IP), BX | |
. . 448074: MOVQ BX, 0x8(SP) | |
. . 448079: LEAQ 0x4af000(IP), BX | |
. . 448080: MOVQ BX, 0x10(SP) | |
. . 448085: CALL runtime.typ2Itab(SB) | |
. . 44808a: MOVQ 0x18(SP), CX | |
. . 44808f: JMP 0x448023 | |
. . 448091: MOVL AX, 0(DI) | |
. . 448093: JMP 0x447ff6 | |
. . 448098: MOVL AX, 0 | |
. . 44809f: JMP 0x447fdf | |
. . 4480a4: MOVL AX, 0(CX) | |
. . 4480a6: JMP 0x447fb7 | |
1 1 627: justAuthority := req.Method == "CONNECT" && !strings.HasPrefix(rawurl, "/") | |
. . 4480ab: MOVQ 0x160(SP), BX | |
1 1 4480b3: CMPQ $0x0, BX | |
. . 4480b7: JE 0x448653 | |
. . 4480bd: MOVQ 0(BX), CX | |
. . 4480c0: MOVQ CX, 0xe0(SP) | |
. . 4480c8: MOVQ 0x8(BX), AX | |
. . 4480cc: MOVQ AX, 0xe8(SP) | |
. . 4480d4: CMPQ $0x7, AX | |
. . 4480d8: JNE 0x44864c | |
. . 4480de: MOVQ CX, 0(SP) | |
. . 4480e2: MOVQ AX, 0x8(SP) | |
. . 4480e7: LEAQ 0x2ec0b2(IP), BP | |
. . 4480ee: LEAQ 0x10(SP), R8 | |
. . 4480f3: MOVQ R8, DI | |
. . 4480f6: MOVQ BP, SI | |
. . 4480f9: MOVSQ DS:0(SI), ES:0(DI) | |
. . 4480fb: MOVSQ DS:0(SI), ES:0(DI) | |
. . 4480fd: CALL runtime.eqstring(SB) | |
. . 448102: MOVZX 0x20(SP), BX | |
. . 448107: CMPL $0x0, BL | |
. . 44810a: JE 0x44864c | |
. . 448110: MOVQ $0x1, AX | |
. . 448117: CMPL $0x0, AL | |
. . 448119: JE 0x448637 | |
. . 44811f: MOVQ 0x90(SP), R8 | |
. . 448127: MOVQ R8, 0x70(SP) | |
. . 44812c: MOVQ 0x98(SP), SI | |
. . 448134: LEAQ 0x2eac05(IP), BX | |
. . 44813b: MOVQ 0(BX), DI | |
. . 44813e: MOVQ DI, 0xa0(SP) | |
. . 448146: MOVQ 0x8(BX), AX | |
. . 44814a: MOVQ SI, 0x78(SP) | |
. . 44814f: MOVQ AX, 0xa8(SP) | |
. . 448157: CMPQ AX, SI | |
. . 44815a: JL 0x44863e | |
. . 448160: CMPQ AX, SI | |
. . 448163: JB 0x448645 | |
. . 448169: MOVQ R8, 0xe0(SP) | |
. . 448171: MOVQ AX, 0xe8(SP) | |
. . 448179: CMPQ AX, AX | |
. . 44817c: JNE 0x44863e | |
. . 448182: MOVQ R8, 0(SP) | |
. . 448186: MOVQ AX, 0x8(SP) | |
. . 44818b: MOVQ DI, 0x10(SP) | |
. . 448190: MOVQ AX, 0x18(SP) | |
. . 448195: CALL runtime.eqstring(SB) | |
. . 44819a: MOVZX 0x20(SP), BX | |
. . 44819f: CMPL $0x0, BL | |
. . 4481a2: JE 0x44863e | |
. . 4481a8: MOVQ $0x1, AX | |
. . 4481af: CMPL $0x0, AL | |
. . 4481b1: JNE 0x448637 | |
. . 4481b7: MOVQ $0x1, CX | |
. . 628: if justAuthority { | |
. . 4481be: CMPL $0x0, CL | |
. . 4481c1: MOVL CL, 0x4f(SP) | |
. . 4481c5: JE 0x448215 | |
. . 629: rawurl = "http://" + rawurl | |
. . 4481c7: LEAQ 0x2fa992(IP), BX | |
. . 4481ce: LEAQ 0(SP), BP | |
. . 4481d2: MOVQ BP, DI | |
. . 4481d5: MOVQ BX, SI | |
. . 4481d8: MOVSQ DS:0(SI), ES:0(DI) | |
. . 4481da: MOVSQ DS:0(SI), ES:0(DI) | |
. . 4481dc: MOVQ 0x90(SP), BX | |
. . 4481e4: MOVQ BX, 0x10(SP) | |
. . 4481e9: MOVQ 0x98(SP), BX | |
. . 4481f1: MOVQ BX, 0x18(SP) | |
. . 4481f6: CALL runtime.concatstring2(SB) | |
. . 4481fb: MOVQ 0x20(SP), BX | |
. . 448200: MOVQ BX, 0x90(SP) | |
. . 448208: MOVQ 0x28(SP), BX | |
. . 44820d: MOVQ BX, 0x98(SP) | |
1 27 632: if req.URL, err = url.ParseRequestURI(rawurl); err != nil { | |
. . 448215: MOVQ 0x90(SP), BX | |
. . 44821d: MOVQ BX, 0(SP) | |
. . 448221: MOVQ 0x98(SP), BX | |
. . 448229: MOVQ BX, 0x8(SP) | |
. 26 44822e: CALL net/url.ParseRequestURI(SB) | |
. . 448233: MOVQ 0x10(SP), CX | |
. . 448238: MOVQ 0x18(SP), BX | |
. . 44823d: MOVQ BX, 0x168(SP) | |
. . 448245: MOVQ 0x20(SP), BX | |
. . 44824a: MOVQ BX, 0x170(SP) | |
1 1 448252: MOVQ 0x160(SP), BX | |
. . 44825a: MOVQ BX, 0(SP) | |
. . 44825e: CMPQ $0x0, 0(SP) | |
. . 448263: JE 0x44862b | |
. . 448269: ADDQ $0x10, 0(SP) | |
. . 44826e: MOVQ CX, 0x8(SP) | |
. . 448273: CALL runtime.writebarrierptr(SB) | |
. . 448278: CMPQ $0x0, 0x168(SP) | |
. . 448281: JE 0x44829d | |
. . 633: return nil, err | |
. . 448283: MOVQ $0x0, 0x160(SP) | |
. . 44828f: NOPL | |
. . 448290: CALL runtime.deferreturn(SB) | |
. . 448295: ADDQ $0x150, SP | |
. . 44829c: RET | |
. . 636: if justAuthority { | |
. . 44829d: CMPL $0x0, 0x4f(SP) | |
. . 4482a2: JE 0x4482cd | |
. . 638: req.URL.Scheme = "" | |
. . 4482a4: MOVQ 0x160(SP), BX | |
. . 4482ac: MOVQ 0x10(BX), BP | |
. . 4482b0: CMPQ $0x0, BP | |
. . 4482b4: JE 0x448623 | |
. . 4482ba: LEAQ 0(BP), BX | |
. . 4482be: MOVQ $0x0, 0(BX) | |
. . 4482c5: MOVQ $0x0, 0x8(BX) | |
. 107 642: mimeHeader, err := tp.ReadMIMEHeader() | |
. . 4482cd: MOVQ 0x50(SP), BX | |
. . 4482d2: MOVQ BX, 0(SP) | |
. 107 4482d6: CALL net/textproto.(*Reader).ReadMIMEHeader(SB) | |
. . 4482db: MOVQ 0x8(SP), CX | |
. . 4482e0: MOVQ 0x10(SP), BX | |
. . 4482e5: MOVQ BX, 0x168(SP) | |
. . 4482ed: MOVQ 0x18(SP), BX | |
. . 4482f2: MOVQ BX, 0x170(SP) | |
. . 643: if err != nil { | |
. . 4482fa: CMPQ $0x0, 0x168(SP) | |
. . 448303: JE 0x44831f | |
. . 644: return nil, err | |
. . 448305: MOVQ $0x0, 0x160(SP) | |
. . 448311: NOPL | |
. . 448312: CALL runtime.deferreturn(SB) | |
. . 448317: ADDQ $0x150, SP | |
. . 44831e: RET | |
1 1 646: req.Header = Header(mimeHeader) | |
. . 44831f: MOVQ 0x160(SP), BX | |
1 1 448327: MOVQ BX, 0(SP) | |
. . 44832b: CMPQ $0x0, 0(SP) | |
. . 448330: JE 0x448617 | |
. . 448336: ADDQ $0x38, 0(SP) | |
. . 44833b: MOVQ CX, 0x8(SP) | |
. . 448340: CALL runtime.writebarrierptr(SB) | |
. . 655: req.Host = req.URL.Host | |
. . 448345: MOVQ 0x160(SP), BX | |
. . 44834d: MOVQ BX, 0(SP) | |
. . 448351: CMPQ $0x0, 0(SP) | |
. . 448356: JE 0x44860b | |
. . 44835c: ADDQ $0x78, 0(SP) | |
. . 448361: MOVQ 0x160(SP), SI | |
. . 448369: MOVQ 0x10(SI), DI | |
. . 44836d: CMPQ $0x0, DI | |
. . 448371: JE 0x448604 | |
. . 448377: LEAQ 0x28(DI), SI | |
. . 44837b: LEAQ 0x8(SP), DI | |
. . 448380: MOVSQ DS:0(SI), ES:0(DI) | |
. . 448382: MOVSQ DS:0(SI), ES:0(DI) | |
. . 448384: CALL runtime.writebarrierstring(SB) | |
. . 656: if req.Host == "" { | |
. . 448389: MOVQ 0x160(SP), BX | |
. . 448391: MOVQ 0x80(BX), BX | |
. . 448398: CMPQ $0x0, BX | |
. . 44839c: JNE 0x448492 | |
. 3 657: req.Host = req.Header.get("Host") | |
. . 4483a2: MOVQ 0x160(SP), BX | |
. . 4483aa: MOVQ 0x38(BX), AX | |
. . 4483ae: LEAQ 0x2edd6b(IP), BX | |
. . 4483b5: MOVQ 0(BX), DX | |
. . 4483b8: MOVQ 0x8(BX), BP | |
. . 4483bc: MOVQ $0x0, 0x60(SP) | |
. . 4483c5: MOVQ $0x0, 0x68(SP) | |
. . 4483ce: MOVQ DX, 0xb0(SP) | |
. . 4483d6: MOVQ BP, 0xb8(SP) | |
. . 4483de: LEAQ 0x2ccd7b(IP), BX | |
. . 4483e5: MOVQ BX, 0(SP) | |
. . 4483e9: MOVQ AX, 0x8(SP) | |
. . 4483ee: MOVQ DX, 0xe0(SP) | |
. . 4483f6: MOVQ DX, 0x10(SP) | |
. . 4483fb: MOVQ BP, 0xe8(SP) | |
. . 448403: MOVQ BP, 0x18(SP) | |
. 3 448408: CALL runtime.mapaccess1_faststr(SB) | |
. . 44840d: MOVQ 0x20(SP), BX | |
. . 448412: CMPQ $0x0, BX | |
. . 448416: JE 0x4485fd | |
. . 44841c: MOVQ 0(BX), DX | |
. . 44841f: MOVQ 0x8(BX), AX | |
. . 448423: MOVQ 0x10(BX), BP | |
. . 448427: MOVQ DX, 0x120(SP) | |
. . 44842f: MOVQ BP, 0x130(SP) | |
. . 448437: MOVQ AX, 0x128(SP) | |
. . 44843f: CMPQ $0x0, AX | |
. . 448443: JLE 0x4485f4 | |
. . 448449: MOVQ DX, BX | |
. . 44844c: CMPQ $0x0, AX | |
. . 448450: JBE 0x4485ed | |
. . 448456: MOVQ 0(DX), DX | |
. . 448459: MOVQ 0x8(BX), CX | |
. . 44845d: MOVQ 0x160(SP), BX | |
. . 448465: MOVQ BX, 0(SP) | |
. . 448469: CMPQ $0x0, 0(SP) | |
. . 44846e: JE 0x4485e1 | |
. . 448474: ADDQ $0x78, 0(SP) | |
. . 448479: MOVQ DX, 0x60(SP) | |
. . 44847e: MOVQ DX, 0x8(SP) | |
. . 448483: MOVQ CX, 0x68(SP) | |
. . 448488: MOVQ CX, 0x10(SP) | |
. . 44848d: CALL runtime.writebarrierstring(SB) | |
1 8 659: delete(req.Header, "Host") | |
. . 448492: LEAQ 0x2edc87(IP), BX | |
. . 448499: MOVQ 0(BX), BP | |
. . 44849c: MOVQ BP, 0x110(SP) | |
. . 4484a4: MOVQ 0x8(BX), BP | |
. . 4484a8: MOVQ BP, 0x118(SP) | |
. . 4484b0: LEAQ 0x2ccca9(IP), BX | |
1 1 4484b7: MOVQ BX, 0(SP) | |
. . 4484bb: MOVQ 0x160(SP), BX | |
. . 4484c3: MOVQ 0x38(BX), BP | |
. . 4484c7: MOVQ BP, 0x8(SP) | |
. . 4484cc: LEAQ 0x110(SP), BX | |
. . 4484d4: MOVQ BX, 0x10(SP) | |
. 7 4484d9: CALL runtime.mapdelete(SB) | |
. 6 661: fixPragmaCacheControl(req.Header) | |
. . 4484de: MOVQ 0x160(SP), BX | |
. . 4484e6: MOVQ 0x38(BX), BP | |
. . 4484ea: MOVQ BP, 0(SP) | |
. 6 4484ee: CALL net/http.fixPragmaCacheControl(SB) | |
2 47 663: err = readTransfer(req, b) | |
. . 4484f3: MOVQ 0x160(SP), DX | |
1 1 4484fb: LEAQ 0x2d7f7e(IP), CX | |
. . 448502: MOVQ CX, 0xc0(SP) | |
1 1 44850a: MOVQ CX, 0(SP) | |
. . 44850e: MOVQ DX, 0xc8(SP) | |
. . 448516: MOVQ DX, 0x8(SP) | |
. . 44851b: MOVQ 0x158(SP), BX | |
. . 448523: MOVQ BX, 0x10(SP) | |
. 45 448528: CALL net/http.readTransfer(SB) | |
. . 44852d: MOVQ 0x18(SP), CX | |
. . 448532: MOVQ 0x20(SP), DX | |
. . 448537: MOVQ CX, 0x168(SP) | |
. . 44853f: MOVQ DX, 0x170(SP) | |
. . 664: if err != nil { | |
. . 448547: CMPQ $0x0, 0x168(SP) | |
. . 448550: JE 0x44856c | |
. . 665: return nil, err | |
. . 448552: MOVQ $0x0, 0x160(SP) | |
. . 44855e: NOPL | |
. . 44855f: CALL runtime.deferreturn(SB) | |
. . 448564: ADDQ $0x150, SP | |
. . 44856b: RET | |
. 3 668: req.Close = shouldClose(req.ProtoMajor, req.ProtoMinor, req.Header, false) | |
. . 44856c: MOVQ 0x160(SP), BX | |
. . 448574: MOVQ 0x28(BX), BP | |
. . 448578: MOVQ BP, 0(SP) | |
. . 44857c: MOVQ 0x160(SP), BX | |
. . 448584: MOVQ 0x30(BX), BP | |
. . 448588: MOVQ BP, 0x8(SP) | |
. . 44858d: MOVQ 0x160(SP), BX | |
. . 448595: MOVQ 0x38(BX), BP | |
. . 448599: MOVQ BP, 0x10(SP) | |
. . 44859e: MOVL $0x0, 0x18(SP) | |
. 3 4485a3: CALL net/http.shouldClose(SB) | |
. . 4485a8: MOVZX 0x20(SP), BX | |
. . 4485ad: MOVQ BX, CX | |
. . 4485b0: MOVQ 0x160(SP), BX | |
. . 4485b8: MOVL CL, 0x70(BX) | |
. 12 669: return req, nil | |
. . 4485bb: MOVQ $0x0, 0x168(SP) | |
. . 4485c7: MOVQ $0x0, 0x170(SP) | |
. 6 4485d3: NOPL | |
. 6 4485d4: CALL runtime.deferreturn(SB) | |
. . 4485d9: ADDQ $0x150, SP | |
. . 4485e0: RET | |
. . 657: req.Host = req.Header.get("Host") | |
. . 4485e1: MOVL AX, 0 | |
. . 4485e8: JMP 0x448474 | |
. . 4485ed: CALL runtime.panicindex(SB) | |
. . 4485f2: UD2 | |
. . 4485f4: XORL DX, DX | |
. . 4485f6: XORL CX, CX | |
. . 4485f8: JMP 0x44845d | |
. . 4485fd: MOVL AX, 0(BX) | |
. . 4485ff: JMP 0x44841c | |
. . 655: req.Host = req.URL.Host | |
. . 448604: MOVL AX, 0(DI) | |
. . 448606: JMP 0x448377 | |
. . 44860b: MOVL AX, 0 | |
. . 448612: JMP 0x44835c | |
. . 646: req.Header = Header(mimeHeader) | |
. . 448617: MOVL AX, 0 | |
. . 44861e: JMP 0x448336 | |
. . 638: req.URL.Scheme = "" | |
. . 448623: MOVL AX, 0(BP) | |
. . 448626: JMP 0x4482ba | |
. . 632: if req.URL, err = url.ParseRequestURI(rawurl); err != nil { | |
. . 44862b: MOVL AX, 0 | |
. . 448632: JMP 0x448269 | |
. . 627: justAuthority := req.Method == "CONNECT" && !strings.HasPrefix(rawurl, "/") | |
. . 448637: XORL CX, CX | |
. . 628: if justAuthority { | |
. . 448639: JMP 0x4481be | |
. . 627: justAuthority := req.Method == "CONNECT" && !strings.HasPrefix(rawurl, "/") | |
. . 44863e: XORL AX, AX | |
. . 448640: JMP 0x4481af | |
. . 448645: CALL runtime.panicslice(SB) | |
. . 44864a: UD2 | |
. . 44864c: XORL AX, AX | |
. . 44864e: JMP 0x448117 | |
. . 448653: MOVL AX, 0(BX) | |
. . 448655: JMP 0x4480bd | |
. . 614: if req.ProtoMajor, req.ProtoMinor, ok = ParseHTTPVersion(req.Proto); !ok { | |
. . 44865a: MOVL AX, 0(DI) | |
. . 44865c: JMP 0x447f57 | |
. . 613: rawurl := req.RequestURI | |
. . 448661: MOVL AX, 0(BX) | |
. . 448663: JMP 0x447f27 | |
. . 609: req.Method, req.RequestURI, req.Proto, ok = parseRequestLine(s) | |
. . 448668: MOVL AX, 0 | |
. . 44866f: JMP 0x447de2 | |
. . 448674: MOVL AX, 0 | |
. . 44867b: JMP 0x447da4 | |
. . 448680: MOVL AX, 0 | |
. . 448687: JMP 0x447d6e | |
. . 606: }() | |
. . 44868c: NOPL | |
. . 44868d: CALL runtime.deferreturn(SB) | |
. . 448692: ADDQ $0x150, SP | |
. . 448699: RET | |
. . 44869a: ADDL AL, 0(AX) | |
. . 44869c: ADDL AL, 0(AX) | |
. . 44869e: ADDL AL, 0(AX) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment