Function at 0x63a990
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x9364f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x63b184
sub esp, 0x8c
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym.net_textproto._Reader_.upcomingHeaderKeys
mov eax, dword [esp + 4]
test eax, eax
jle 0x63a9f9
cmp eax, 0x3e8
jle 0x63a9d1
mov eax, 0x3e8
mov dword [esp + 0x4c], eax
lea ecx, [0x6bd7a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov edx, eax
mov eax, ecx
jmp 0x63a9fd
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x40], ecx
lea ebx, [0x6e9740]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
call sym.runtime.makemap
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x88], edx
mov dword [esp], ecx
mov dword [esp + 4], 1
call sym.bufio._Reader_.Peek
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x94]
mov edx, ecx
add ecx, 0xfffffe70
test eax, eax
je 0x63aa65
add edx, 0xfffffe70
jmp 0x63ab39
mov ebx, dword [esp + 0xc]
test ebx, ebx
jbe 0x63b17a
mov eax, dword [esp + 8]
movzx eax, byte [eax]
cmp al, 0x20
je 0x63aa86
cmp al, 9
jne 0x63ab33
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], 0x50
mov dword [esp + 8], 0
call sym.net_textproto._Reader_.readLineSlice
mov eax, dword [esp + 0x18]
test eax, eax
je 0x63aad4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x8c
ret
mov dword [esp], 0
lea eax, [0x70e045]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x24
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa4], ecx
lea ecx, [0x772620]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x8c
ret
add edx, 0xfffffe70
mov eax, dword [esp + 0x98]
adc eax, 0xffffffff
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x40]
jmp 0x63ab6f
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov ebp, ecx
mov esi, eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x90]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea edi, [0x71ca94]
mov dword [esp + 0xc], edi
call sym.net_textproto._Reader_.readContinuedLineSlice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
je 0x63affb
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [0x910570]
mov ebp, dword [0x910574]
mov esi, dword [0x910578]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
call sym.bytes.Cut
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x63af8c
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.net_textproto.canonicalMIMEHeaderKey
movzx eax, byte [esp + 0x14]
test al, al
je 0x63af1d
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x38]
xor ecx, ecx
jmp 0x63b029
mov ecx, dword [esp + 0x64]
add ecx, 0xffffffff
mov ebx, dword [esp + 0x68]
adc ebx, 0xffffffff
test ebx, ebx
jl 0x63b14e
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x48], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
lea eax, [0x7007b5]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call sym.bytes.TrimLeft
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
lea edx, [0x6e9740]
mov dword [esp], edx
mov ebx, dword [esp + 0x88]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x7c]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x48]
mov dword [esp + 0xc], esi
call sym.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x63ad23
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x5c]
jmp 0x63ad41
mov edx, dword [esp + 0x48]
mov ebx, edx
sar edx, 0x1f
mov ebp, dword [esp + 0x5c]
sub ebp, ebx
mov esi, dword [esp + 0x60]
sbb esi, edx
add ebp, 0xffffff38
adc esi, 0xffffffff
mov edx, dword [esp + 0x34]
mov edi, edx
sar edx, 0x1f
sub ebp, edi
sbb esi, edx
test esi, esi
jl 0x63b11f
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebp
test ecx, ecx
je 0x63ad6b
mov edx, dword [esp + 0x40]
jmp 0x63ae1f
mov edx, dword [esp + 0x40]
test edx, edx
je 0x63ae1f
mov eax, dword [esp + 0x74]
mov dword [eax + 4], edi
lea ecx, [edx - 1]
mov dword [esp + 0x40], ecx
neg ecx
sar ecx, 0x1f
and ecx, 8
mov edi, dword [0x9367c0]
add ecx, eax
mov dword [esp + 0x84], ecx
test edi, edi
je 0x63adb0
call sym.runtime.gcWriteBarrier2
mov ebp, dword [esp + 0x6c]
mov dword [edi], ebp
mov esi, dword [eax]
mov dword [edi + 4], esi
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
lea ecx, [0x6e9740]
mov dword [esp], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x7c]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov ecx, dword [0x9367c0]
test ecx, ecx
jne 0x63adfd
mov ecx, dword [esp + 0x74]
jmp 0x63ae0d
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x74]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
jmp 0x63af0c
mov ebp, dword [eax + 8]
mov eax, dword [eax + 4]
inc eax
cmp ebp, eax
jae 0x63ae68
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6bd7a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebp
lea esi, [ecx + eax*8 - 4]
mov dword [esi], edi
mov esi, dword [0x9367c0]
lea edi, [ecx + eax*8 - 8]
test esi, esi
je 0x63ae9f
mov esi, edi
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x6c]
mov dword [edi], edx
mov ecx, dword [esi]
mov dword [edi + 4], ecx
mov edi, esi
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
lea eax, [0x6e9740]
mov dword [esp], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x58]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [0x9367c0]
test ecx, ecx
jne 0x63aeef
mov ecx, dword [esp + 0x84]
jmp 0x63af02
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x84]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x50]
test edx, edx
je 0x63ab5b
jmp 0x63b0f5
mov dword [esp], 0
lea eax, [0x70a213]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa4], ecx
lea ecx, [0x772620]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x8c
ret
mov dword [esp], 0
lea eax, [0x70a213]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa4], ecx
lea ecx, [0x772620]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x8c
ret
mov eax, dword [esp + 0x88]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
add esp, 0x8c
ret
lea ecx, [ebp + 1]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x38]
cmp ecx, edx
jge 0x63ac62
movzx ebx, byte [eax + ecx]
mov ebp, ecx
mov ecx, ebx
mov esi, 1
shl esi, cl
lea edi, [ecx - 0x60]
mov ecx, edi
mov eax, 1
shl eax, cl
neg ecx
mov edx, 1
shr edx, cl
cmp bl, 0x20
sbb ebx, ebx
and ebx, esi
cmp cl, 0x20
sbb esi, esi
and edx, esi
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb esi, esi
and eax, esi
or edx, eax
test edx, 0x80000000
sete al
test ebx, 0xfffffdff
sete dl
and eax, edx
test al, al
jne 0x63b01e
mov dword [esp], 0
lea eax, [0x70a213]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa4], ecx
lea ecx, [0x772620]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x8c
ret
mov eax, dword [esp + 0x88]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0x80]
mov dword [esp + 0xac], eax
add esp, 0x8c
ret
mov eax, dword [0x90f5b0]
mov ecx, dword [0x90f5b4]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x8c
ret
mov eax, dword [0x90f5b0]
mov ecx, dword [0x90f5b4]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x8c
ret
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.net_textproto.readMIMEHeader