Skip to content

Instantly share code, notes, and snippets.

@methane
Created November 1, 2014 12:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save methane/328f0c6a0bb193f77b03 to your computer and use it in GitHub Desktop.
Save methane/328f0c6a0bb193f77b03 to your computer and use it in GitHub Desktop.
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