Function at 0x587ba0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x588769
sub esp, 0xd4
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call dbg.net/http.(*conn).hijacked
movzx eax, byte [esp + 4]
test al, al
jne 0x588737
lea edi, [esp + 0x68]
xor eax, eax
call fcn.0044c04b
lea edi, [esp + 0x90]
call fcn.0044c04b
call dbg.time.Now
lea edi, [esp + 0x7c]
mov esi, esp
call fcn.0044c52e
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx]
mov ebx, dword [edx + 0x1c]
mov ebp, dword [edx + 0x20]
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
test ebp, ebp
mov eax, ecx
setne cl
or ecx, esi
test cl, cl
je 0x58872c
test ebx, ebx
setne cl
test ebp, ebp
setne dl
or edx, ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x64], ecx
test dl, dl
jne 0x5886f4
mov edx, dword [eax]
mov ebx, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
test edx, edx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
setne cl
or ecx, ebp
test cl, cl
jne 0x5886c3
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 8]
mov edx, dword [edx + 0x28]
lea edi, [esp + 4]
mov dword [esp + 0x64], edi
lea esi, [esp + 0x90]
call fcn.0044c52e
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
test edx, edx
setne bl
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x588684
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x34]
mov edx, dword [eax + 0x24]
test ecx, ecx
jle 0x58867a
mov ebx, ecx
add ecx, 0x1000
mov dword [edx + 0x18], ecx
mov ecx, ebx
sar ebx, 0x1f
add ecx, 0x1000
adc ebx, 0
mov dword [edx + 0x1c], ebx
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x30]
lea ebx, [eax + 0x30]
mov dword [esp + 0x5c], ebx
cmp ecx, 4
jne 0x587d28
mov ecx, dword [edx]
cmp ecx, 0x54534f50
je 0x588625
mov ecx, dword [eax + 0x28]
mov dword [esp], ecx
mov byte [esp + 4], 0
call dbg.net/http.readRequest
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], ecx
test edx, edx
jne 0x5885b4
mov ecx, dword [eax + 0x14]
cmp ecx, 1
jne 0x588542
mov dword [esp + 0x40], eax
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [esp + 0xd8]
mov dword [ebx + 0x34], ecx
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x588522
mov dword [ebx + 0x30], edx
mov ecx, dword [ebx + 0x24]
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x1c], 0x7fffffff
mov ecx, dword [eax + 0x1c]
mov dword [esp + 4], ecx
lea ecx, [0x635da0]
mov dword [esp], ecx
lea edx, [0x645a08]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 4
call dbg.runtime.mapaccess2_faststr
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
mov dword [esp + 0x60], esi
cmp ebp, 3
jne 0x588519
mov edi, ebp
movzx ebp, word [esi]
cmp bp, 0x5250
jne 0x588512
movzx ebp, byte [esi + 2]
xchg ebp, eax
cmp al, 0x49
xchg ebp, eax
jne 0x58850b
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
je 0x588504
mov ebp, dword [ebp]
test ebp, ebp
jne 0x5884fd
mov ebp, dword [ebx + 8]
mov esi, dword [ebp + 0x20]
mov ebp, dword [ebp + 0x1c]
cmp esi, 1
jne 0x5884f6
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x2a
xchg ebp, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5884ef
mov ebp, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
cmp ebp, 8
jne 0x5884e8
mov ebp, dword [esi]
cmp ebp, 0x50545448
jne 0x5884e1
mov ebp, dword [esi + 4]
cmp ebp, 0x302e322f
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov esi, dword [ebx + 0x14]
cmp esi, 1
jle 0x5884c6
mov esi, 1
xchg esi, eax
test al, al
xchg esi, eax
je 0x587e9d
test cl, cl
je 0x587e93
test edx, edx
jne 0x587e9d
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x588469
cmp edx, 1
jg 0x588437
xchg ebp, eax
mov byte [esp + 0x31], al
xchg ebp, eax
je 0x5883e2
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x58], ecx
lea edi, [esp + 0xa4]
xor eax, eax
call fcn.0044c044
lea ecx, [0x635da0]
mov dword [esp], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
lea edx, [esp + 0xa4]
mov dword [esp + 8], edx
call dbg.runtime.mapiterinit
jmp 0x587f63
mov edx, dword [esp + 0x5c]
lea ecx, [edx + 8]
mov edx, dword [esp + 0x38]
lea eax, [edx + 1]
mov edx, dword [esp + 0x34]
cmp eax, edx
jge 0x587f54
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [esp], edx
mov dword [esp + 4], eax
call dbg.vendor/golang_org/x/net/lex/httplex.ValidHeaderFieldValue
movzx eax, byte [esp + 8]
test al, al
jne 0x587eea
mov dword [esp + 0xe4], 0
lea eax, [0x7585f0]
mov dword [esp + 0xe8], eax
lea eax, [0x67afd8]
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
lea eax, [esp + 0xa4]
mov dword [esp], eax
call dbg.runtime.mapiternext
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x587fd9
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 4]
mov dword [esp + 0x34], edx
mov ecx, dword [ecx]
mov dword [esp + 0x3c], ecx
mov ebx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dbg.vendor/golang_org/x/net/lex/httplex.ValidHeaderFieldName
movzx eax, byte [esp + 8]
test al, al
je 0x587fa7
xor eax, eax
mov ecx, dword [esp + 0x3c]
jmp 0x587ef8
mov dword [esp + 0xe4], 0
lea eax, [0x7585f0]
mov dword [esp + 0xe8], eax
lea eax, [0x67afd0]
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 4], ecx
lea ecx, [0x635da0]
mov dword [esp], ecx
lea edx, [0x645a08]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 4
call dbg.runtime.mapdelete_faststr
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
call dbg.context.WithCancel
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x40]
mov dword [ebx + 0x78], edx
mov edx, dword [0x79b700]
lea ebp, [ebx + 0x7c]
test edx, edx
jne 0x5883c9
mov dword [ebx + 0x7c], ecx
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x10]
mov dword [ebx + 0x60], edx
mov edx, dword [0x79b700]
mov esi, eax
lea eax, [ebx + 0x5c]
test edx, edx
jne 0x5883a9
mov dword [ebx + 0x5c], ebp
mov eax, dword [0x79b700]
lea edx, [ebx + 0x6c]
mov ebp, dword [ecx + 0x18]
test eax, eax
jne 0x588389
mov dword [ebx + 0x6c], ebp
mov eax, dword [ebx + 0x24]
mov edx, dword [ebx + 0x20]
lea ebp, [0x759630]
cmp edx, ebp
jne 0x58837f
jne 0x5880a0
mov byte [eax + 0x15], 1
mov edi, esp
lea esi, [esp + 0x90]
call fcn.0044c52e
lea edi, [esp + 0x14]
lea esi, [esp + 0x68]
call fcn.0044c52e
call dbg.time.Time.Equal
movzx eax, byte [esp + 0x28]
test al, al
je 0x588350
lea eax, [0x635da0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call dbg.runtime.makemap
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
lea ecx, [0x5f9000]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call dbg.runtime.makechan
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
call dbg.net/http.(*Request).wantsHttp10KeepAlive
movzx eax, byte [esp + 4]
mov byte [esp + 0x33], al
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
call dbg.net/http.(*Request).wantsClose
movzx eax, byte [esp + 4]
mov byte [esp + 0x32], al
lea ecx, [0x63b2e0]
mov dword [esp], ecx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x588334
mov ecx, dword [esp + 0xd8]
mov dword [eax], ecx
test byte [eax], al
mov ecx, dword [0x79b700]
lea edx, [eax + 0x10]
lea ebx, [eax + 4]
test ecx, ecx
jne 0x5882ff
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [0x79b700]
lea ebx, [eax + 0xc]
lea ebp, [eax + 0x28]
test ecx, ecx
jne 0x5882d2
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x38], 0xffffffff
mov dword [eax + 0x3c], 0xffffffff
mov ecx, dword [0x79b700]
lea edx, [eax + 0x84]
test ecx, ecx
jne 0x5882b9
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x84], ecx
movzx ecx, byte [esp + 0x33]
mov byte [eax + 0x16], cl
movzx ecx, byte [esp + 0x32]
mov byte [eax + 0x17], cl
mov dword [esp + 0xe4], eax
movzx ecx, byte [esp + 0x31]
test cl, cl
je 0x58821b
mov byte [eax + 0x44], 1
mov eax, dword [esp + 0xe4]
test byte [eax], al
mov ecx, dword [0x79b700]
lea edx, [eax + 0x1c]
test ecx, ecx
jne 0x5882a8
mov dword [eax + 0x1c], eax
mov eax, dword [esp + 0xe4]
test byte [eax], al
lea ecx, [0x757ed0]
mov dword [esp], ecx
add eax, 0x1c
mov dword [esp + 4], eax
mov dword [esp + 8], 0x800
call dbg.net/http.newBufioWriterSize
mov eax, dword [esp + 0xe4]
test byte [eax], al
mov ecx, dword [0x79b700]
lea edx, [eax + 0x18]
mov ebx, dword [esp + 0xc]
test ecx, ecx
jne 0x58829a
mov dword [eax + 0x18], ebx
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov dword [esp], edx
mov dword [esp + 4], ebx
call dbg.runtime.writebarrierptr
jmp 0x588277
mov dword [esp], edx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
jmp 0x588234
mov dword [esp], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x50]
jmp 0x5881f7
mov dword [esp + 0x4c], ebp
mov dword [esp], ebx
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x50]
jmp 0x5881cb
mov dword [esp + 0x48], ebx
mov dword [esp], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
jmp 0x5881a4
mov dword [esp], eax
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x50]
jmp 0x588180
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 8]
mov edx, dword [edx + 0x28]
mov edi, dword [esp + 0x64]
lea esi, [esp + 0x68]
call fcn.0044c52e
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
call edx
jmp 0x5880cd
mov eax, 0
jmp 0x58809a
mov dword [esp], edx
mov dword [esp + 4], ebp
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
jmp 0x588086
mov dword [esp], eax
mov dword [esp + 4], ebp
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
jmp 0x58806f
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
jmp 0x588049
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dbg.vendor/golang_org/x/net/lex/httplex.ValidHostHeader
movzx eax, byte [esp + 8]
test al, al
je 0x588405
mov ebx, dword [esp + 0x40]
jmp 0x587eb2
mov dword [esp + 0xe4], 0
lea eax, [0x7585f0]
mov dword [esp + 0xe8], eax
lea eax, [0x67afc8]
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov dword [esp + 0xe4], 0
lea eax, [0x7585f0]
mov dword [esp + 0xe8], eax
lea eax, [0x67afc0]
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
cmp edi, 7
jne 0x588494
mov ecx, dword [esp + 0x60]
mov esi, dword [ecx]
cmp esi, 0x4e4e4f43
jne 0x588494
movzx esi, word [ecx + 4]
cmp si, 0x4345
jne 0x588494
movzx ecx, byte [ecx + 6]
cmp cl, 0x54
je 0x587e9d
mov dword [esp + 0xe4], 0
lea eax, [0x7585f0]
mov dword [esp + 0xe8], eax
lea eax, [0x67afb8]
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
jne 0x5884da
mov esi, dword [ebx + 0x18]
cmp esi, 1
xchg esi, ebx
setge bl
xchg esi, ebx
jmp 0x587e85
xor esi, esi
jmp 0x587e85
xor ebp, ebp
jmp 0x587e74
xor ebp, ebp
jmp 0x587e74
xor ebp, ebp
jmp 0x587e74
xor ebp, ebp
jmp 0x587e3d
xor ebp, ebp
jmp 0x587e74
xor ebp, ebp
jmp 0x587e13
xor ebp, ebp
jmp 0x587e74
xor ebp, ebp
jmp 0x587e74
mov edi, ebp
xor ebp, ebp
jmp 0x587e74
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0xd8]
jmp 0x587d8a
cmp ecx, 2
jne 0x588582
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x588582
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, 3
jne 0x588582
movzx ecx, word [edx]
cmp cx, 0x5250
jne 0x588582
movzx ecx, byte [edx + 2]
cmp cl, 0x49
jne 0x588582
mov ecx, dword [eax + 0x68]
mov edx, dword [eax + 0x64]
cmp ecx, 1
jne 0x588582
movzx ecx, byte [edx]
cmp cl, 0x2a
je 0x587d66
mov dword [esp + 0xe4], 0
lea eax, [0x7585f0]
mov dword [esp + 0xe8], eax
lea eax, [0x67b148]
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
test ecx, ecx
setbe cl
test eax, eax
sete dl
and edx, ecx
test eax, eax
setl al
or edx, eax
test dl, dl
je 0x58860d
mov eax, dword [0x788af8]
mov ecx, dword [0x788afc]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], ecx
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov dword [esp + 0xe4], 0
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov ecx, dword [eax + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], 4
call dbg.bufio.(*Reader).Peek
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call dbg.net/http.numLeadingCRorLF
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], edx
call dbg.bufio.(*Reader).Discard
mov eax, dword [esp + 0xd8]
jmp 0x587d28
mov ecx, 0x100000
jmp 0x587cec
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp], 0xc
lea ecx, [0x65ad34]
mov dword [esp + 4], ecx
call dbg.runtime.deferproc
test eax, eax
jne 0x5886b6
mov eax, dword [esp + 0xd8]
jmp 0x587cdc
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
mov edi, esp
lea esi, [esp + 0x7c]
call fcn.0044c52e
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
call dbg.time.Time.Add
lea edi, [esp + 0x68]
mov esi, dword [esp + 0x64]
call fcn.0044c52e
mov eax, dword [esp + 0xd8]
jmp 0x587c89
mov edi, esp
lea esi, [esp + 0x7c]
call fcn.0044c52e
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
call dbg.time.Time.Add
lea edi, [esp + 0x90]
mov esi, dword [esp + 0x64]
call fcn.0044c52e
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x64]
jmp 0x587c69
mov ebp, dword [edx + 0x18]
mov ebx, dword [edx + 0x14]
jmp 0x587c4d
mov eax, dword [0x788a4c]
mov ecx, dword [0x788a48]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
nop
call dbg.runtime.deferreturn
add esp, 0xd4
ret
call dbg.runtime.morestack_noctxt
jmp dbg.net/http.(*conn).readRequest