Function at 0x40ba50
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.0041b549
lea eax, [esp + 0x3c]
push 0x32
push eax
push ebp
call fcn.0041b353
push 0
push 0
push 0x38
push ebp
mov byte [esp + 0x8a], 0
call fcn.0041b549
lea ecx, [esp + 0x3f]
push 1
push ecx
push ebp
call fcn.0041b353
push 0
push 0
push 0x39
push ebp
call fcn.0041b549
add esp, 0x48
lea edx, [esp + 0x12]
push 1
push edx
push ebp
call fcn.0041b353
push 0
push 0
push 0x3a
push ebp
call fcn.0041b549
lea eax, [esp + 0x2d]
push 1
push eax
push ebp
call fcn.0041b353
push ebp
call fcn.0040be00
mov dword [esp + 0x94], eax
mov al, byte [esp + 0x9c]
add esp, 0x2c
cmp al, 2
jne 0x40bb26
mov al, byte [esp + 0x11]
test al, al
jne 0x40bb26
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0x432ca0
push ecx
lea ecx, [esp + 0x24]
call fcn.0041adfd
lea edx, [esp + 0x20]
push 0x42e888
push edx
call fcn.0041aed8
mov al, byte [esp + 0x12]
mov ebx, dword [esp + 0x6c]
test al, al
je 0x40bbbe
push 0
push 0
push 0x3c
push ebp
call fcn.0041b549
push 0x400
push 0x4355f0
push ebp
call fcn.0041b353
mov al, byte [esp + 0x2f]
add esp, 0x1c
test al, al
push 0
push 0
je 0x40bb68
push 0x80a0
jmp 0x40bb6d
push 0x9320
push ebx
call fcn.0041b549
add esp, 0x10
push 0x400
push 0x435bf0
push ebx
call fcn.0041b353
add esp, 0xc
mov ecx, 0x100
mov edi, 0x435bf0
mov esi, 0x4355f0
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x40bbbe
mov ecx, dword [esp + 0x64]
push 0x24
push 0x432c90
push 0x432c54
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x40bdf8
push 2
push 0
push 0
push ebp
call fcn.0041b549
push ebp
call fcn.0041b342
push 0
push 0
cdq
push 0
push ebp
mov esi, eax
mov edi, edx
call fcn.0041b549
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 0x40bc0b
add eax, 0x24
cdq
sub esi, eax
sbb edi, edx
xor eax, eax
push 0
push eax
push ecx
push ebp
call fcn.0041b549
mov al, byte [esp + 0x80]
add esp, 0x10
cmp al, 1
jne 0x40bd5f
mov al, byte [esp + 0x11]
test al, al
jne 0x40bcab
lea edx, [esp + 0x18]
push 8
push edx
push ebp
call fcn.0041b353
lea eax, [esp + 0x20]
push 1
push eax
push ebp
call fcn.0041b353
mov ecx, dword [esp + 0x2c]
and ecx, 0xff
push ecx
push 0x4359f0
push ebp
call fcn.0041b353
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push 0
push edx
push eax
push ebx
call fcn.0041b549
mov ecx, dword [esp + 0x48]
and ecx, 0xff
push ecx
push 0x4359f0
push ebx
call fcn.0041b195
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 0x40bc31
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
lea eax, [esp + 0x18]
push 8
push eax
push ebp
call fcn.0041b353
lea ecx, [esp + 0x20]
push 1
push ecx
push ebp
call fcn.0041b353
mov edx, dword [esp + 0x2c]
and edx, 0xff
push edx
push 0x4359f0
push ebp
call fcn.0041b353
mov al, byte [esp + 0x35]
add esp, 0x24
test al, al
je 0x40bcfd
mov eax, dword [esp + 0x14]
push 1
and eax, 0xff
cdq
push edx
push eax
push ebp
call fcn.0041b549
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push eax
push ecx
push ebx
call fcn.0041b549
mov edx, dword [esp + 0x24]
and edx, 0xff
push edx
push 0x4359f0
push ebx
call fcn.0041b195
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 0x40bd49
mov eax, ecx
cdq
sub esi, eax
sbb edi, edx
mov eax, esi
or eax, edi
jne 0x40bcab
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.0041b353
lea edx, [esp + 0x20]
push 1
push edx
push ebp
call fcn.0041b353
mov eax, dword [esp + 0x2c]
push 1
and eax, 0xff
cdq
push edx
push eax
push ebp
call fcn.0041b549
mov eax, dword [esp + 0x3c]
and eax, 0xff
push eax
push 0x4359f0
push ebp
call fcn.0041b353
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push 0
push ecx
push edx
push ebx
call fcn.0041b549
mov eax, dword [esp + 0x58]
add esp, 0x44
and eax, 0xff
push eax
push 0x4359f0
push ebx
call fcn.0041b195
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 0x40bd5b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret