Function at 0x1004ef99
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x27c
mov eax, dword [0x100a5688]
xor eax, esp
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x284]
mov ecx, dword [esp + 0x290]
push ebx
mov ebx, dword [esp + 0x284]
push ebp
push esi
mov esi, dword [esp + 0x298]
push edi
mov edi, dword [esp + 0x298]
xor ebp, ebp
xorps xmm0, xmm0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ebp
movlpd qword [esp + 0x14], xmm0
mov dword [eax], ebp
test edi, edi
jne 0x1004effc
xor eax, eax
jmp 0x1004f27c
push 0x2a
lea eax, [esp + 0x60]
push eax
push ebx
call fcn.1004f455
add esp, 0xc
test eax, eax
jne 0x1004f27c
lea eax, [esp + 0x5c]
push eax
mov eax, str.Content_Type:_multipart_form_data
test esi, esi
cmovne eax, esi
push eax
push str._s__boundary_s_r_n
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.1004edf7
add esp, 0x14
test eax, eax
jne 0x1004f27c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x18]
je 0x1004f076
push 0x1009f270
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004f26f
lea eax, [esp + 0x5c]
push eax
push str.___s_r_n
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
push str.Content_Disposition:_form_data__name_
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004f26f
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi + 8]
cdq
push edx
push eax
push dword [edi + 4]
lea eax, [esp + 0x20]
push 1
push eax
call fcn.1004ec55
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x1004f26f
push 0x100967dc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004f26f
cmp dword [edi + 0x24], ebp
je 0x1004f14a
push 0x2a
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.1004f455
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004f26f
lea eax, [esp + 0x30]
push eax
push str._r_nContent_Type:_multipart_mixed__boundary_s_r_n
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
mov ebp, edi
cmp dword [edi + 0x24], 0
je 0x1004f185
lea eax, [esp + 0x30]
push eax
push str._r_n___s_r_nContent_Disposition:_attachment
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
push ebp
jmp 0x1004f1a2
test byte [edi + 0x28], 0x51
je 0x1004f1b4
cmp dword [edi + 0x2c], 0
jne 0x1004f197
test byte [edi + 0x28], 1
je 0x1004f1ac
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
push edi
call fcn.1004f485
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004f26f
cmp dword [ebp + 0x1c], 0
je 0x1004f1de
push dword [ebp + 0x1c]
lea eax, [esp + 0x18]
push str._r_nContent_Type:__s
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
mov ebx, dword [ebp + 0x20]
jmp 0x1004f205
push dword [ebx]
lea eax, [esp + 0x18]
push str._r_n_s
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x1004f1e3
test esi, esi
jne 0x1004f26f
push str._r_n_r_n
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1004f26f
mov eax, dword [edi + 0x28]
test al, 3
jne 0x1004f2d6
test al, 0x10
je 0x1004f295
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi + 0x18]
cdq
push edx
push eax
push dword [edi + 0x14]
push 2
lea eax, [esp + 0x24]
push eax
call fcn.1004ec55
add esp, 0x18
mov esi, eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [ebp + 0x24]
test ebp, ebp
je 0x1004f3c8
test esi, esi
je 0x1004f14c
lea eax, [esp + 0x28]
push eax
call fcn.1004ef43
pop ecx
mov eax, esi
mov ecx, dword [esp + 0x288]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1005ae75
add esp, 0x27c
ret
test al, 0x40
je 0x1004f2b7
test al, al
jns 0x1004f2a5
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
jmp 0x1004f2a9
mov eax, dword [edi + 0x10]
cdq
lea ecx, [esp + 0x14]
push ecx
push edx
push eax
push dword [edi + 0x30]
push 3
jmp 0x1004f249
test al, al
jns 0x1004f2c3
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
jmp 0x1004f2c7
mov eax, dword [edi + 0x10]
cdq
lea ecx, [esp + 0x14]
push ecx
push edx
push eax
push dword [edi + 0xc]
jmp 0x1004f247
push dword [ebp + 0xc]
push 0x1008d8d8
call fcn.10059610
pop ecx
pop ecx
test eax, eax
jne 0x1004f2f0
call fcn.1005bd49
jmp 0x1004f2ff
push 0x1008dc2c
push dword [ebp + 0xc]
call fcn.1005c10b
pop ecx
pop ecx
mov ebx, eax
test ebx, ebx
je 0x1004f3a0
call fcn.1005bd49
push ebx
cmp ebx, eax
je 0x1004f380
call fcn.1005be91
lea eax, [esp + 0x18]
push eax
push 0
push 0
push dword [ebp + 0xc]
lea eax, [esp + 0x24]
push 4
push eax
call fcn.1004ec55
add esp, 0x1c
jmp 0x1004f256
lea ecx, [esp + 0x14]
push ecx
push 0
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x20]
push 2
push eax
call fcn.1004ec55
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x1004f258
push ebx
call fcn.1005e86d
pop ecx
test eax, eax
jne 0x1004f258
push ebx
call fcn.1005e893
pop ecx
test eax, eax
jne 0x1004f258
push ebx
push 0x200
lea eax, [esp + 0x90]
push 1
push eax
call fcn.1005cf90
add esp, 0x10
test eax, eax
jne 0x1004f338
jmp 0x1004f258
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x1004f3b9
push dword [ebp + 0xc]
push str.couldnt_open_file___s_
push ebx
call fcn.1003054c
add esp, 0xc
mov eax, dword [esp + 0x20]
push 0x1a
and dword [eax], 0
pop esi
jmp 0x1004f25c
test esi, esi
jne 0x1004f26f
xor ebp, ebp
cmp dword [edi + 0x24], ebp
je 0x1004f3fd
lea eax, [esp + 0x30]
push eax
push str._r_n___s__
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
mov edi, dword [edi]
test edi, edi
jne 0x1004f04b
test esi, esi
jne 0x1004f26f
lea eax, [esp + 0x5c]
push eax
push str._r_n___s___r_n
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1004edf7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1004f26f
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
jmp 0x1004eff5