Function at 0x43c450
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a0
mov eax, dword [0x50e5d4]
xor eax, ebp
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44c], ecx
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x43c486
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov ecx, dword [ebp - 0x44c]
call fcn.0043c910
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
lea ecx, [ebp - 8]
call fcn.004d9b40
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
lea edx, [ebp - 0x440]
push edx
mov ecx, dword [ebp - 0x44c]
add ecx, 4
call fcn.0043d000
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
jmp 0x43c4df
lea ecx, [ebp - 8]
call fcn.0043d050
lea eax, [ebp - 0x448]
push eax
mov ecx, dword [ebp - 0x44c]
add ecx, 4
call fcn.004259c0
push eax
lea ecx, [ebp - 8]
call fcn.0043d070
movzx ecx, al
test ecx, ecx
je 0x43c7b8
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 8]
call fcn.0043d030
mov edx, dword [eax + 0x500]
mov dword [ebp - 0x450], edx
cmp dword [ebp - 0x450], 1
je 0x43c53e
cmp dword [ebp - 0x450], 2
je 0x43c5d0
jmp 0x43c77a
push 0x2000
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 8]
call fcn.0043d030
add eax, 0x100
push eax
lea ecx, [ebp - 8]
call fcn.0043d030
push eax
mov eax, dword [ebp + 0xc]
push eax
push str.___s_r_nContent_Disposition:_form_data__name__s__r_n_r_n_s_r_n
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.004c06c5
add esp, 0x14
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x454], edx
mov eax, dword [ebp - 0x454]
add eax, 1
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x454]
mov dl, byte [ecx]
mov byte [ebp - 0x459], dl
add dword [ebp - 0x454], 1
cmp byte [ebp - 0x459], 0
jne 0x43c592
mov eax, dword [ebp - 0x454]
sub eax, dword [ebp - 0x458]
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
mov dword [ebp - 0xc], ecx
jmp 0x43c77a
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 0
push 0
push 0x8000080
push 3
push 0
push 1
push SysReAllocString
lea ecx, [ebp - 8]
call fcn.0043d030
add eax, 0x100
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x20], eax
push 0
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x1801
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x14], eax
mov cl, byte [0x4eef0d]
mov byte [ebp - 0x438], cl
push 0x400
push 0
lea edx, [ebp - 0x437]
push edx
call fcn.004c36d0
add esp, 0xc
lea ecx, [ebp - 8]
call fcn.0043d030
add eax, 0x100
push eax
mov ecx, dword [ebp - 0x44c]
call fcn.0043c9f0
push eax
lea ecx, [ebp - 8]
call fcn.0043d030
add eax, 0x100
push eax
lea ecx, [ebp - 8]
call fcn.0043d030
push eax
mov eax, dword [ebp + 0xc]
push eax
push str.___s_r_nContent_Disposition:_form_data__name__s___filename__s__r_nContent_Type:__s_r_n_r_n
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.004c06c5
add esp, 0x18
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x464], edx
mov eax, dword [ebp - 0x464]
add eax, 1
mov dword [ebp - 0x468], eax
mov ecx, dword [ebp - 0x464]
mov dl, byte [ecx]
mov byte [ebp - 0x469], dl
add dword [ebp - 0x464], 1
cmp byte [ebp - 0x469], 0
jne 0x43c6aa
mov eax, dword [ebp - 0x464]
sub eax, dword [ebp - 0x468]
mov dword [ebp - 0x470], eax
mov ecx, dword [ebp - 0x470]
mov dword [ebp - 0x24], ecx
push 0
lea edx, [ebp - 0x18]
push edx
push 0x400
lea eax, [ebp - 0x438]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x43c74f
cmp dword [ebp - 0x18], 0
jbe 0x43c74f
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x1c]
ja 0x43c74f
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x438]
push ecx
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x28]
push edx
call fcn.004c5ea0
add esp, 0xc
push 0x401
push 0
lea eax, [ebp - 0x438]
push eax
call fcn.004c36d0
add esp, 0xc
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
jmp 0x43c6e3
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov cx, word [0x4f20ec]
mov word [edx + eax], cx
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx + eax + 2]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
add eax, dword [ebp - 0x10]
push eax
call fcn.004c5ea0
add esp, 0xc
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x14], 0
je 0x43c7b3
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x14], 0
jmp 0x43c4d7
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x10]
mov ax, word [0x4f2148]
mov word [ecx + edx], ax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x474], ecx
mov edx, dword [ebp - 0x474]
add edx, 1
mov dword [ebp - 0x478], edx
mov eax, dword [ebp - 0x474]
mov cl, byte [eax]
mov byte [ebp - 0x479], cl
add dword [ebp - 0x474], 1
cmp byte [ebp - 0x479], 0
jne 0x43c7e2
mov edx, dword [ebp - 0x474]
sub edx, dword [ebp - 0x478]
mov dword [ebp - 0x480], edx
mov eax, dword [ebp - 0x480]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x10]
lea edx, [eax + ecx + 2]
push edx
call fcn.004c5ea0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x484], eax
mov ecx, dword [ebp - 0x484]
add ecx, 1
mov dword [ebp - 0x488], ecx
mov edx, dword [ebp - 0x484]
mov al, byte [edx]
mov byte [ebp - 0x489], al
add dword [ebp - 0x484], 1
cmp byte [ebp - 0x489], 0
jne 0x43c84a
mov ecx, dword [ebp - 0x484]
sub ecx, dword [ebp - 0x488]
mov dword [ebp - 0x490], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
add eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x490]
lea edx, [eax + ecx + 2]
mov ax, word [str.___r_n]
mov word [edx], ax
mov cl, byte [0x4f214e]
mov byte [edx + 2], cl
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x494], edx
mov eax, dword [ebp - 0x494]
add eax, 1
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x494]
mov dl, byte [ecx]
mov byte [ebp - 0x499], dl
add dword [ebp - 0x494], 1
cmp byte [ebp - 0x499], 0
jne 0x43c8b6
mov eax, dword [ebp - 0x494]
sub eax, dword [ebp - 0x498]
mov dword [ebp - 0x4a0], eax
mov ecx, dword [ebp - 0x4a0]
mov edx, dword [ebp - 0x10]
lea eax, [edx + ecx + 5]
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.004bee8a
mov esp, ebp
pop ebp
ret 8