Function at 0x4116a0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x230
mov eax, dword [0x46e074]
xor eax, esp
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x234]
push ebx
push ebp
mov ebp, dword [esp + 0x244]
push esi
push edi
xor edi, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x30], eax
mov esi, edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [eax], edi
cmp ebp, edi
je 0x411c1d
mov ebx, dword [esp + 0x24]
call fcn.00411da0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x411710
lea eax, [edi + 0x1b]
jmp 0x411c1f
test esi, esi
jne 0x411719
mov esi, str.Content_Type:_multipart_form_data
mov ebx, eax
push ebx
push esi
push str._s__boundary_s_r_n
lea edx, [esp + 0x20]
push 0
push edx
call fcn.00411450
mov esi, eax
add esp, 0x14
test esi, esi
je 0x411748
push ebx
call dword [0x46f554]
add esp, 4
mov eax, esi
jmp 0x411c1f
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
or edi, dword [esp + 0x1c]
je 0x411777
push 0x461374
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00411450
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x411bbd
mov eax, dword [esp + 0x28]
push eax
push str.___s_r_n
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x411bbd
push str.Content_Disposition:_form_data__name_
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x411bbd
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
cdq
test edx, edx
jl 0x411b89
jg 0x4117d7
test eax, eax
jb 0x411b89
lea esi, [esp + 0x18]
push esi
push edx
push eax
push ecx
lea edx, [esp + 0x24]
push 1
push edx
call fcn.00411290
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x411bbd
push 0x461960
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x411bbd
cmp dword [ebp + 0x24], eax
je 0x411863
mov edx, dword [esp + 0x20]
push edx
call dword [0x46f554]
mov ebx, dword [esp + 0x28]
add esp, 4
call fcn.00411da0
mov dword [esp + 0x20], eax
test eax, eax
je 0x411b90
push eax
push str._r_nContent_Type:_multipart_mixed__boundary_s_r_n
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x411bbd
mov ebx, ebp
cmp dword [ebp + 0x24], 0
je 0x41189f
mov edx, dword [esp + 0x20]
push edx
push str._r_n___s_r_nContent_Disposition:_attachment
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x411bbd
lea edx, [esp + 0x18]
lea eax, [esp + 0x14]
push edx
push eax
mov eax, ebx
jmp 0x4118bc
mov eax, dword [ebp + 0x28]
test al, 0x51
je 0x4118ce
cmp dword [ebp + 0x2c], 0
jne 0x4118b0
test al, 1
je 0x4118c6
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
mov eax, ebp
call fcn.004115d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x411bbd
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x4118f7
push eax
push str._r_nContent_Type:__s
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x411bbd
mov edi, dword [ebx + 0x20]
test edi, edi
je 0x41192d
mov edi, edi
mov edx, dword [edi]
push edx
push str._r_n_s
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x411bbd
mov edi, dword [edi + 4]
test edi, edi
jne 0x411900
jmp 0x411935
test esi, esi
jne 0x411bbd
push str._r_n_r_n
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00411450
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x411bbd
mov eax, dword [ebp + 0x28]
test al, 3
jne 0x411a26
test al, 0x10
je 0x41199c
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
cdq
test edx, edx
jl 0x411b0b
jg 0x41197e
test eax, eax
jb 0x411b0b
lea esi, [esp + 0x18]
push esi
push edx
push eax
push ecx
lea ecx, [esp + 0x24]
push 2
push ecx
call fcn.00411290
add esp, 0x18
mov esi, eax
jmp 0x411b3d
test al, 0x40
je 0x4119e3
test al, al
jns 0x4119ac
mov eax, dword [ebp + 0x38]
mov edx, dword [ebp + 0x3c]
jmp 0x4119b0
mov eax, dword [ebp + 0x10]
cdq
mov ecx, dword [ebp + 0x30]
test edx, edx
jl 0x411b0b
jg 0x4119c5
test eax, eax
jb 0x411b0b
lea esi, [esp + 0x18]
push esi
push edx
push eax
push ecx
lea edx, [esp + 0x24]
push 3
push edx
call fcn.00411290
add esp, 0x18
mov esi, eax
jmp 0x411b3d
test al, al
jns 0x4119ef
mov eax, dword [ebp + 0x38]
mov edx, dword [ebp + 0x3c]
jmp 0x4119f3
mov eax, dword [ebp + 0x10]
cdq
mov ecx, dword [ebp + 0xc]
test edx, edx
jl 0x411b0b
jg 0x411a08
test eax, eax
jb 0x411b0b
lea esi, [esp + 0x18]
push esi
push edx
push eax
push ecx
lea eax, [esp + 0x24]
push 2
push eax
call fcn.00411290
add esp, 0x18
mov esi, eax
jmp 0x411b3d
mov edi, dword [ebx + 0xc]
mov ecx, edi
mov eax, 0x463240
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x411a50
test dl, dl
je 0x411a4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x411a50
add eax, 2
add ecx, 2
test dl, dl
jne 0x411a30
xor eax, eax
jmp 0x411a55
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x411a60
call fcn.0044a58d
jmp 0x411a6e
push 0x461928
push edi
call fcn.00445c21
add esp, 8
mov edi, eax
test edi, edi
je 0x411b12
call fcn.0044a58d
push edi
cmp edi, eax
je 0x411aad
call fcn.00445caf
mov eax, dword [ebx + 0xc]
add esp, 4
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
push eax
lea edx, [esp + 0x24]
push 4
push edx
call fcn.00411290
add esp, 0x18
mov esi, eax
jmp 0x411b3d
push 0x200
lea eax, [esp + 0x40]
push 1
push eax
call fcn.0045bf59
add esp, 0x10
test eax, eax
je 0x411b3d
xor ecx, ecx
jl 0x411b0b
jg 0x411acf
test eax, eax
jb 0x411b0b
lea edx, [esp + 0x18]
push edx
push ecx
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x24]
push 2
push ecx
call fcn.00411290
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x411b3d
push edi
push 0x200
lea edx, [esp + 0x40]
push 1
push edx
call fcn.0045bf59
add esp, 0x10
test eax, eax
jne 0x411ac5
jmp 0x411b3d
mov esi, 0x2b
jmp 0x411b3d
cmp dword [esp + 0x24], 0
je 0x411b2e
mov eax, dword [ebx + 0xc]
push eax
mov eax, dword [esp + 0x28]
push str.couldnt_open_file___s_
call fcn.00414140
add esp, 8
mov ecx, dword [esp + 0x30]
mov dword [ecx], 0
mov esi, 0x1a
mov ebx, dword [ebx + 0x24]
test ebx, ebx
je 0x411b4e
test esi, esi
je 0x411865
jmp 0x411bbd
test esi, esi
jne 0x411bbd
cmp dword [ebp + 0x24], esi
je 0x411b79
mov edx, dword [esp + 0x20]
push edx
push str._r_n___s__
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x411bbd
mov ebp, dword [ebp]
test ebp, ebp
je 0x411b97
mov edi, dword [esp + 0x18]
jmp 0x411750
mov esi, 0x2b
jmp 0x411bbd
mov esi, 0x1b
jmp 0x411bbd
test esi, esi
jne 0x411bbd
mov edi, dword [esp + 0x28]
push edi
push str._r_n___s___r_n
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.00411450
mov esi, eax
add esp, 0x10
test esi, esi
je 0x411bea
lea ecx, [esp + 0x2c]
push ecx
call fcn.004114b0
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call dword [0x46f554]
mov eax, dword [esp + 0x2c]
add esp, 4
push eax
call dword [0x46f554]
add esp, 4
mov eax, esi
jmp 0x411c1f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x20]
push eax
call dword [0x46f554]
add esp, 4
push edi
call dword [0x46f554]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add esp, 4
mov dword [edx], ecx
xor eax, eax
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004453f2
add esp, 0x230
ret