Function at 0x40233c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea eax, [ebx + 0x8bd]
lea esi, [ebx + 0x9c2]
push eax
push esi
call fcn.00403ae0
push dword [ebp + 0xc]
push esi
call fcn.00403af0
add esp, 0x10
cmp dword [ebx + 0x38c], 0xffffffff
mov edi, 0x8000
jne 0x40238a
push 0x180
push edi
push esi
call fcn.0040417f
add esp, 0xc
mov dword [ebx + 0x38c], eax
cmp dword [ebx + 0x388], 0xffffffff
jne 0x4023a8
push 0x180
push edi
push esi
call fcn.0040417f
add esp, 0xc
mov dword [ebx + 0x388], eax
mov eax, dword [ebx + 0x38c]
cmp eax, 0xffffffff
je 0x40269b
cmp dword [ebx + 0x388], 0xffffffff
je 0x40269b
lea ecx, [ebp - 0x24]
push 0x24
push ecx
push eax
call fcn.00406511
add esp, 0xc
cmp eax, 0x24
jne 0x40269b
cmp dword [ebp - 0x24], 0x4643534d
jne 0x40269b
cmp word [ebp - 0xc], 0x103
jne 0x40269b
mov ax, word [ebp + 0x14]
cmp ax, 0xffff
je 0x402417
mov cx, word [ebp + 0x10]
cmp cx, word [ebp - 4]
jne 0x40269b
cmp ax, word [ebp - 2]
jne 0x40269b
and byte [ebp + 0xa], 0
and byte [ebp + 0xb], 0
push 9
lea edi, [ebx + 0x354]
pop ecx
lea esi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
test byte [ebx + 0x372], 4
mov word [ebp + 8], si
je 0x4024c6
lea eax, [ebp + 8]
push 4
push eax
push dword [ebx + 0x38c]
call fcn.00406511
add esp, 0xc
cmp eax, 4
jne 0x40269b
cmp dword [ebx + 0x3a4], 0xffff
jne 0x40248c
movzx eax, word [ebp + 8]
cmp eax, esi
mov dword [ebx + 0x3a4], eax
jbe 0x40248c
push eax
call fcn.00403c28
cmp eax, esi
pop ecx
mov dword [ebx + 0x350], eax
je 0x40269b
mov eax, dword [ebx + 0x3a4]
cmp eax, esi
jbe 0x4024c6
push eax
push dword [ebx + 0x350]
push dword [ebx + 0x38c]
call fcn.00406511
add esp, 0xc
cmp dword [ebx + 0x3a4], eax
je 0x4024c6
push dword [ebx + 0x350]
call fcn.00403c9c
mov dword [ebx + 0x350], esi
jmp 0x402501
movzx eax, byte [ebp + 0xa]
mov ecx, dword [ebx + 0x348]
add eax, 8
cmp ecx, esi
jne 0x40250d
push eax
mov dword [ebx + 0x3a8], eax
call fcn.00403c28
cmp eax, esi
pop ecx
mov dword [ebx + 0x348], eax
jne 0x402518
push dword [ebx + 0x350]
lea edi, [ebx + 0x350]
call fcn.00403c9c
mov dword [edi], esi
push ebx
call fcn.004026a9
pop ecx
jmp 0x4026a1
cmp eax, dword [ebx + 0x3a8]
je 0x402518
push ecx
jmp 0x402546
movzx eax, byte [ebp + 0xb]
mov ecx, dword [ebx + 0x34c]
add eax, 8
cmp ecx, esi
jne 0x402572
push eax
mov dword [ebx + 0x3ac], eax
call fcn.00403c28
cmp eax, esi
pop ecx
mov dword [ebx + 0x34c], eax
jne 0x402580
push dword [ebx + 0x348]
call fcn.00403c9c
push dword [ebx + 0x350]
lea edi, [ebx + 0x350]
mov dword [ebx + 0x348], esi
call fcn.00403c9c
push ebx
mov dword [edi], esi
call fcn.004026a9
add esp, 0xc
jmp 0x4026a2
cmp eax, dword [ebx + 0x3ac]
je 0x402580
push ecx
jmp 0x40264e
test byte [ebx + 0x372], 1
mov edi, 0x100
je 0x4025c1
lea eax, [ebx + 0x4b9]
push edi
push eax
push ebx
call fcn.00402710
add esp, 0xc
test eax, eax
je 0x402648
lea eax, [ebx + 0x5ba]
push edi
push eax
push ebx
call fcn.00402710
add esp, 0xc
test eax, eax
jne 0x4025cf
jmp 0x402648
and byte [ebx + 0x4b9], 0
and byte [ebx + 0x5ba], 0
test byte [ebx + 0x372], 2
je 0x402604
lea eax, [ebx + 0x6bb]
push edi
push eax
push ebx
call fcn.00402710
add esp, 0xc
test eax, eax
je 0x402648
lea eax, [ebx + 0x7bc]
push edi
push eax
push ebx
call fcn.00402710
add esp, 0xc
test eax, eax
jne 0x402612
jmp 0x402648
and byte [ebx + 0x6bb], 0
and byte [ebx + 0x7bc], 0
push 1
push esi
push dword [ebx + 0x38c]
call fcn.00403ccb
add esp, 0xc
cmp eax, 0xffffffff
mov dword [ebx + 0x334], eax
je 0x402648
push esi
push dword [ebx + 0x364]
push dword [ebx + 0x38c]
call fcn.00403ccb
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402688
push dword [ebx + 0x34c]
call fcn.00403c9c
push dword [ebx + 0x348]
mov dword [ebx + 0x34c], esi
call fcn.00403c9c
push dword [ebx + 0x350]
lea edi, [ebx + 0x350]
mov dword [ebx + 0x348], esi
call fcn.00403c9c
push ebx
mov dword [edi], esi
call fcn.004026a9
add esp, 0x10
jmp 0x4026a2
mov ax, word [ebx + 0x370]
push 1
mov word [ebx + 0x3b0], ax
pop eax
jmp 0x4026a4
push ebx
call fcn.004026a9
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret