Function at 0x40c360
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x50
push ebx
push ebp
mov ebp, dword [esp + 0x60]
push esi
push edi
push 0
push 0
push 6
push ebp
mov byte [esp + 0x23], 0
mov byte [esp + 0x21], 0
mov byte [esp + 0x24], 0
mov byte [esp + 0x22], 0
call fcn.0041ec59
lea eax, [esp + 0x3c]
push 0x32
push eax
push ebp
call fcn.0041ea63
push 0
push 0
push 0x38
push ebp
mov byte [esp + 0x8a], 0
call fcn.0041ec59
lea ecx, [esp + 0x3f]
push 1
push ecx
push ebp
call fcn.0041ea63
push 0
push 0
push 0x39
push ebp
call fcn.0041ec59
add esp, 0x48
lea edx, [esp + 0x12]
push 1
push edx
push ebp
call fcn.0041ea63
push 0
push 0
push 0x3a
push ebp
call fcn.0041ec59
lea eax, [esp + 0x2d]
push 1
push eax
push ebp
call fcn.0041ea63
push ebp
call fcn.0040c710
mov dword [esp + 0x94], eax
mov al, byte [esp + 0x9c]
add esp, 0x2c
cmp al, 2
jne 0x40c436
mov al, byte [esp + 0x11]
test al, al
jne 0x40c436
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0x435d20
push ecx
lea ecx, [esp + 0x24]
call fcn.0041e52d
lea edx, [esp + 0x20]
push 0x431950
push edx
call fcn.0041e608
mov al, byte [esp + 0x12]
mov ebx, dword [esp + 0x6c]
test al, al
je 0x40c4ce
push 0
push 0
push 0x3c
push ebp
call fcn.0041ec59
push 0x400
push 0x438870
push ebp
call fcn.0041ea63
mov al, byte [esp + 0x2f]
add esp, 0x1c
test al, al
push 0
push 0
je 0x40c478
push 0x80a0
jmp 0x40c47d
push 0x9320
push ebx
call fcn.0041ec59
add esp, 0x10
push 0x400
push 0x438e70
push ebx
call fcn.0041ea63
add esp, 0xc
mov ecx, 0x100
mov edi, 0x438e70
mov esi, 0x438870
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x40c4ce
mov ecx, dword [esp + 0x64]
push 0x24
push 0x435d10
push 0x435cd4
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x40c708
push 2
push 0
push 0
push ebp
call fcn.0041ec59
push ebp
call fcn.0041ea52
push 0
push 0
cdq
push 0
push ebp
mov esi, eax
mov edi, edx
call fcn.0041ec59
mov cl, byte [esp + 0x36]
add esp, 0x24
neg cl
sbb ecx, ecx
xor eax, eax
and ecx, 0x400
add ecx, 0x3c
sub esi, ecx
sbb edi, eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x40c51b
add eax, 0x24
cdq
sub esi, eax
sbb edi, edx
xor eax, eax
push 0
push eax
push ecx
push ebp
call fcn.0041ec59
mov al, byte [esp + 0x80]
add esp, 0x10
cmp al, 1
jne 0x40c66f
mov al, byte [esp + 0x11]
test al, al
jne 0x40c5bb
lea edx, [esp + 0x18]
push 8
push edx
push ebp
call fcn.0041ea63
lea eax, [esp + 0x20]
push 1
push eax
push ebp
call fcn.0041ea63
mov ecx, dword [esp + 0x2c]
and ecx, 0xff
push ecx
push 0x438c70
push ebp
call fcn.0041ea63
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push 0
push edx
push eax
push ebx
call fcn.0041ec59
mov ecx, dword [esp + 0x48]
and ecx, 0xff
push ecx
push 0x438c70
push ebx
call fcn.0041e8a5
mov eax, dword [esp + 0x54]
add esp, 0x40
and eax, 0xff
add eax, 9
cdq
sub esi, eax
sbb edi, edx
mov edx, esi
or edx, edi
jne 0x40c541
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
lea eax, [esp + 0x18]
push 8
push eax
push ebp
call fcn.0041ea63
lea ecx, [esp + 0x20]
push 1
push ecx
push ebp
call fcn.0041ea63
mov edx, dword [esp + 0x2c]
and edx, 0xff
push edx
push 0x438c70
push ebp
call fcn.0041ea63
mov al, byte [esp + 0x35]
add esp, 0x24
test al, al
je 0x40c60d
mov eax, dword [esp + 0x14]
push 1
and eax, 0xff
cdq
push edx
push eax
push ebp
call fcn.0041ec59
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push eax
push ecx
push ebx
call fcn.0041ec59
mov edx, dword [esp + 0x24]
and edx, 0xff
push edx
push 0x438c70
push ebx
call fcn.0041e8a5
mov ecx, dword [esp + 0x30]
add esp, 0x1c
and ecx, 0xff
lea eax, [ecx + 9]
cdq
sub esi, eax
mov al, byte [esp + 0x11]
sbb edi, edx
test al, al
je 0x40c659
mov eax, ecx
cdq
sub esi, eax
sbb edi, edx
mov eax, esi
or eax, edi
jne 0x40c5bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
mov ebx, dword [esp + 0x6c]
lea ecx, [esp + 0x18]
push 8
push ecx
push ebp
call fcn.0041ea63
lea edx, [esp + 0x20]
push 1
push edx
push ebp
call fcn.0041ea63
mov eax, dword [esp + 0x2c]
push 1
and eax, 0xff
cdq
push edx
push eax
push ebp
call fcn.0041ec59
mov eax, dword [esp + 0x3c]
and eax, 0xff
push eax
push 0x438c70
push ebp
call fcn.0041ea63
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push 0
push ecx
push edx
push ebx
call fcn.0041ec59
mov eax, dword [esp + 0x58]
add esp, 0x44
and eax, 0xff
push eax
push 0x438c70
push ebx
call fcn.0041e8a5
mov ecx, dword [esp + 0x20]
add esp, 0xc
and ecx, 0xff
lea eax, [ecx + 9]
cdq
mov ebx, eax
mov eax, ecx
mov ecx, ebx
mov ebx, edx
cdq
add ecx, eax
adc ebx, edx
sub esi, ecx
sbb edi, ebx
mov edx, esi
or edx, edi
jne 0x40c66b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret