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

Disassembly:
mov eax, dword [esp + 8]
push edi
push 0
push 0x20
push 3
push 0
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x4022c9
push ebx
lea ecx, [esp + 0x10]
push esi
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
lea edx, [ebx + 8]
push edx
call fcn.00402140
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
push 0
push eax
lea ecx, [esi + 8]
push ebx
push ecx
push edi
mov dword [esi], 1
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop esi
pop ebx
pop edi
ret

Function at 0x402319
Capabilities:
Accept command line arguments
Parse pe header
Terminate process

Disassembly:
push 0x60
push 0x407110
call fcn.004033dc
mov edi, 0x94
mov eax, edi
call fcn.00403540
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esi + 0x10]
mov dword [0x409e24], ecx
mov eax, dword [esi + 4]
mov dword [0x409e30], eax
mov edx, dword [esi + 8]
mov dword [0x409e34], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x409e28], esi
cmp ecx, 2
je 0x402379
or esi, 0x8000
mov dword [0x409e28], esi
shl eax, 8
add eax, edx
mov dword [0x409e2c], eax
xor esi, esi
push esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x4023b4
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4023b4
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x4023cc
cmp eax, 0x20b
je 0x4023b9
mov dword [ebp - 0x1c], esi
jmp 0x4023e0
cmp dword [ecx + 0x84], 0xe
jbe 0x4023b4
xor eax, eax
cmp dword [ecx + 0xf8], esi
jmp 0x4023da
cmp dword [ecx + 0x74], 0xe
jbe 0x4023b4
xor eax, eax
cmp dword [ecx + 0xe8], esi
setne al
mov dword [ebp - 0x1c], eax
push 1
call fcn.0040338a
pop ecx
test eax, eax
jne 0x4023f4
push 0x1c
call fcn.004022f5
pop ecx
call fcn.00403281
test eax, eax
jne 0x402405
push 0x10
call fcn.004022f5
pop ecx
call fcn.0040301b
mov dword [ebp - 4], esi
call fcn.00402e1d
test eax, eax
jge 0x40241e
push 0x1b
call fcn.004022d0
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x40a634], eax
call fcn.00402cfb
mov dword [0x409e14], eax
call fcn.00402c59
test eax, eax
jge 0x402444
push 8
call fcn.004022d0
pop ecx
call fcn.00402a26
test eax, eax
jge 0x402455
push 9
call fcn.004022d0
pop ecx
push 1
call fcn.00402548
pop ecx
mov dword [ebp - 0x28], eax
cmp eax, esi
je 0x40246b
push eax
call fcn.004022d0
pop ecx
mov dword [ebp - 0x44], esi
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.004029c9
mov dword [ebp - 0x20], eax
test byte [ebp - 0x44], 1
je 0x40248c
movzx eax, word [ebp - 0x40]
jmp 0x40248f
push 0xa
pop eax
push eax
push dword [ebp - 0x20]
push esi
push esi
call edi
push eax
call fcn.00401000
mov edi, eax
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x1c], esi
jne 0x4024ad
push edi
call fcn.00402675
call fcn.00402697
jmp 0x4024df
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x7c]
call fcn.00403417
ret