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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x5f8789
sub esp, 0xc0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd0], 0
lea eax, [0x8ef7c0]
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 + 0x9c], eax
lea ecx, [0x8ef680]
mov dword [esp], ecx
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 + 0x98], eax
lea ecx, [0x917b00]
mov dword [esp], ecx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x64], eax
mov ecx, dword [0xc93940]
test ecx, ecx
jne 0x5f876d
mov ecx, dword [esp + 0x9c]
mov dword [eax], ecx
test byte [eax], al
mov ecx, dword [0xc93940]
lea edx, [eax + 4]
test ecx, ecx
jne 0x5f8751
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp], 8
lea ecx, [0x9ee52c]
mov dword [esp + 4], ecx
call dbg.runtime.deferproc
test eax, eax
jne 0x5f8744
xor eax, eax
mov ecx, 0xa00000
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], ebx
mov ebp, dword [esp + 0xc4]
mov dword [esp], ebp
call dbg.mime/multipart.(*Reader).NextPart
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x74], edx
mov ebx, dword [0xc7f4e0]
cmp edx, ebx
je 0x5f86dc
test edx, edx
jne 0x5f86b6
mov dword [esp], eax
call dbg.mime/multipart.(*Part).FormName
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x5c], ecx
test eax, eax
jne 0x5f7de4
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
jmp 0x5f7d5a
mov edx, dword [esp + 0x58]
mov dword [esp], edx
call dbg.mime/multipart.(*Part).FileName
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x68], ecx
lea edx, [0x92f880]
mov dword [esp], edx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x5f8165
lea ecx, [0xc47fa0]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0xc48a60]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x14], ebp
call dbg.io.CopyN
mov eax, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], ebx
test ecx, ecx
je 0x5f7ebb
mov ebp, dword [0xc7f4e0]
cmp ecx, ebp
jne 0x5f8134
mov dword [esp], ecx
mov dword [esp + 4], eax
mov ebp, dword [0xc7f4e4]
mov esi, dword [0xc7f4e0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
je 0x5f8134
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
sbb ecx, edx
mov dword [esp + 0x44], ecx
test eax, eax
sete dl
test ecx, ecx
sete bl
and edx, ebx
test dl, dl
jne 0x5f80bb
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x88]
test ebp, ebp
je 0x5f80ab
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 4]
mov eax, dword [ebp]
mov ebp, dword [ebp + 0xc]
cmp ebp, edi
ja 0x5f80a4
mov dword [esp], 0
sub esi, ebp
lea ecx, [esi - 1]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, ebp
add eax, ecx
mov dword [esp + 4], eax
sub edi, ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
call dbg.runtime.slicebytetostring
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x64]
mov ebx, dword [edx]
mov dword [esp + 4], ebx
lea ebx, [0x8ef7c0]
mov dword [esp], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], ebp
call dbg.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x50], ecx
mov edx, dword [eax]
mov eax, dword [eax + 8]
lea ebx, [ecx + 1]
cmp ebx, eax
jg 0x5f806c
mov dword [esp + 0x94], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], eax
mov ebp, ecx
shl ecx, 3
mov esi, dword [esp + 0x28]
mov dword [edx + ecx + 4], esi
lea ebp, [edx + ebp*8]
mov esi, dword [0xc93940]
test esi, esi
jne 0x5f8048
mov ebp, dword [esp + 0x54]
mov dword [edx + ecx], ebp
mov ecx, dword [esp + 0x64]
mov ebp, dword [ecx]
mov dword [esp + 4], ebp
lea ebp, [0x8ef7c0]
mov dword [esp], ebp
lea esi, [esp + 0xa8]
mov dword [esp + 8], esi
call dbg.runtime.mapassign
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov ecx, dword [0xc93940]
test ecx, ecx
jne 0x5f8033
mov ecx, dword [esp + 0x94]
mov dword [eax], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
jmp 0x5f7d5a
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
jmp 0x5f8018
mov dword [esp], ebp
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x50]
jmp 0x5f7fd0
lea ebp, [0x8e91e0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call dbg.runtime.growslice
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, ecx
mov ecx, dword [esp + 0x50]
jmp 0x5f7fa0
call dbg.runtime.panicslice
ud2
lea ecx, [0x986fb5]
mov eax, 5
jmp 0x5f7f55
lea eax, [0x905c20]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x90], eax
mov dword [eax + 4], 0x1c
mov ecx, dword [0xc93940]
test ecx, ecx
jne 0x5f8119
lea ecx, [0x99a287]
mov dword [eax], ecx
mov dword [esp + 0xd0], 0
lea ecx, [0xc48220]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
mov dword [esp], eax
lea ecx, [0x99a287]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x90]
jmp 0x5f80ed
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0x78]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xd8], eax
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
lea edx, [0x932700]
mov dword [esp], edx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [0xc93940]
test ecx, ecx
jne 0x5f869d
mov ecx, dword [esp + 0x68]
mov dword [eax], ecx
test byte [eax], al
mov ecx, dword [0xc93940]
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
lea ebp, [eax + 8]
test ecx, ecx
jne 0x5f8684
mov dword [eax + 8], ebx
mov ecx, dword [esp + 0xc8]
add ecx, 1
lea ebp, [0xc47fa0]
mov dword [esp], ebp
mov esi, dword [esp + 0x88]
mov dword [esp + 4], esi
lea edi, [0xc48a60]
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xcc]
adc ecx, 0
mov dword [esp + 0x14], ecx
call dbg.io.CopyN
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
test ecx, ecx
je 0x5f8254
mov ebp, dword [0xc7f4e0]
cmp ecx, ebp
jne 0x5f8656
mov dword [esp], ecx
mov dword [esp + 4], eax
mov ebp, dword [0xc7f4e4]
mov esi, dword [0xc7f4e0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
je 0x5f8656
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xcc]
cmp eax, ecx
sete dl
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0xc8]
cmp ebx, ebp
xchg esi, ebx
seta bl
xchg esi, ebx
and edx, esi
cmp eax, ecx
xchg esi, ebx
setg bl
xchg esi, ebx
or esi, edx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5f8469
mov edx, dword [esp + 0x88]
mov esi, dword [edx + 0xc]
mov edi, dword [edx]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
cmp esi, eax
ja 0x5f8462
sub eax, esi
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0x10], eax
sub edx, esi
mov dword [ecx + 0x14], edx
mov eax, dword [0xc93940]
dec edx
sar edx, 0x1f
xor edx, 0xffffffff
and esi, edx
lea edx, [esi + edi]
lea esi, [ecx + 0xc]
test eax, eax
jne 0x5f8442
mov dword [ecx + 0xc], edx
sub ebp, ebx
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0x3c]
sbb eax, edx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], ebp
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xa4], ebx
mov esi, dword [esp + 0x64]
mov edi, dword [esi + 4]
mov dword [esp + 4], edi
lea edi, [0x8ef680]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call dbg.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x50], edx
mov eax, dword [eax + 8]
lea ebx, [edx + 1]
cmp ebx, eax
jg 0x5f840a
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], eax
mov ebp, dword [0xc93940]
lea esi, [ecx + edx*4]
test ebp, ebp
jne 0x5f83e6
mov ebp, dword [esp + 0x6c]
mov dword [ecx + edx*4], ebp
mov edx, dword [esp + 0x64]
mov ebp, dword [edx + 4]
mov dword [esp + 4], ebp
lea ebp, [0x8ef680]
mov dword [esp], ebp
lea esi, [esp + 0xa0]
mov dword [esp + 8], esi
call dbg.runtime.mapassign
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov ecx, dword [0xc93940]
test ecx, ecx
jne 0x5f83d1
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
jmp 0x5f7d5a
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
jmp 0x5f83b6
mov dword [esp], esi
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x50]
jmp 0x5f836d
lea ebp, [0x8facc0]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call dbg.runtime.growslice
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x50]
jmp 0x5f8346
mov dword [esp], esi
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0xc8]
jmp 0x5f82d7
call dbg.runtime.panicslice
ud2
mov dword [esp], 0
mov dword [esp + 4], 0
lea eax, [0x98c49e]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xa
call dbg.io/ioutil.TempFile
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ecx, ecx
jne 0x5f8630
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
lea ecx, [0xc47f80]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 0xb4], edx
lea edx, [0xc48a60]
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xbc], ebx
lea ebx, [esp + 0xb0]
mov dword [esp], ebx
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call dbg.io.MultiReader
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
lea edx, [0xc48ea0]
mov dword [esp], edx
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call dbg.io.Copy
mov eax, dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x60]
mov dword [esp], edx
call dbg.os.(*File).Close
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x70]
test edx, edx
je 0x5f8627
mov eax, dword [esp + 0x84]
mov dword [esp + 0x84], eax
mov dword [esp + 0x70], edx
test edx, edx
jne 0x5f85de
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x1c], eax
mov eax, dword [0xc93940]
lea ebx, [edx + 0x18]
test eax, eax
jne 0x5f85cc
mov dword [edx + 0x18], ecx
mov ecx, edx
mov eax, dword [esp + 0xcc]
mov ebp, dword [esp + 0xc8]
jmp 0x5f82e6
mov dword [esp], ebx
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov edx, dword [esp + 0x6c]
jmp 0x5f85b7
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call dbg.os.Remove
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0x70]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xd8], eax
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
mov edx, eax
mov eax, ecx
jmp 0x5f8585
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xd8], eax
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
mov dword [esp], ebp
mov dword [esp + 4], ebx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
jmp 0x5f81b2
mov dword [esp], eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
jmp 0x5f8196
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], ecx
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ebx, dword [0xc7f4e0]
mov ebp, dword [0xc7f4e4]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call dbg.runtime.ifaceeq
movzx eax, byte [esp + 0x10]
test al, al
jne 0x5f8716
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
jmp 0x5f7da5
mov eax, dword [esp + 0x64]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
nop
call dbg.runtime.deferreturn
add esp, 0xc0
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x64]
jmp 0x5f7d18
mov dword [esp], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x64]
jmp 0x5f7cfb
call dbg.runtime.morestack_noctxt
jmp dbg.mime/multipart.(*Reader).readForm