Function at 0x403173
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x30]
push ebx
not eax
and eax, dword [ebp + 0x2c]
push esi
push edi
mov ebx, dword [ebp + 8]
push eax
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.004045ae
add esp, 0x28
test eax, eax
je 0x4032d8
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ebx + 0x94]
je 0x4031eb
cmp dword [ebx], 0
jl 0x4031cc
mov ax, word [ebx + 0xe]
and ax, 0xf000
cmp ax, 0x8000
jne 0x4031eb
cmp dword [ebx + 0x78], 0
jl 0x4032ba
mov ax, word [ebx + 0x86]
and ax, 0xf000
cmp ax, 0x8000
je 0x4032ba
mov eax, dword [ebx]
cmp eax, dword [ebx + 0x78]
jne 0x4031fb
and dword [ebp + 0x30], 0
jmp 0x4032c1
mov eax, 0x2000
push eax
push eax
call fcn.00405541
pop ecx
mov dword [ebp + 0x18], eax
pop ecx
lea esi, [ebx + 0x30]
push 2
pop edi
push dword [ebp + 0x18]
push dword [esi]
call fcn.00404f19
mov dword [esi], eax
pop ecx
add esi, 0x78
dec edi
pop ecx
jne 0x403212
lea esi, [ebx + 0x38]
mov dword [ebp + 0x30], 2
cmp dword [esi - 0x38], 0
jl 0x403270
mov eax, dword [esi]
cmp eax, dword [ebp + 0x18]
je 0x403270
mov eax, dword [esi]
mov ecx, dword [ebp + 0x18]
sub ecx, eax
push ecx
mov ecx, dword [esi - 8]
add ecx, eax
push ecx
push dword [esi - 0x38]
call fcn.0041bbf8
mov edi, eax
add esp, 0xc
test edi, edi
je 0x403270
jge 0x403267
push dword [esi - 0x34]
call fcn.0040354a
pop ecx
mov eax, dword [ebp + 0x18]
add dword [esi], edi
cmp dword [esi], eax
jne 0x40323d
add esi, 0x78
dec dword [ebp + 0x30]
jne 0x403230
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 0xb0]
jne 0x4032ba
xor esi, esi
cmp eax, esi
je 0x40329f
push eax
push dword [ebx + 0xa8]
push dword [ebx + 0x30]
call fcn.0041b1e0
add esp, 0xc
test eax, eax
jne 0x4032ba
mov eax, dword [ebp + 0x18]
cmp dword [ebx + 0x38], eax
jne 0x4032b5
mov dword [ebx + 0xb0], esi
mov dword [ebx + 0x38], esi
jmp 0x403226
mov dword [ebp + 0x30], esi
jmp 0x4032c1
mov dword [ebp + 0x30], 1
push dword [ebp + 0x34]
push dword [ebp + 0x2c]
push ebx
push dword [ebp + 0x30]
call fcn.004054d7
add esp, 0x10
jmp 0x403507
mov eax, dword [ebx + 0xbc]
mov ecx, dword [ebx + 0x44]
lea esi, [eax + ecx + 4]
push esi
call fcn.0040356c
push esi
push 0
push eax
mov dword [ebx + 0x6c], eax
call fcn.0041b180
inc dword [ebx + 0x6c]
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x44]
push ebx
lea eax, [eax + ecx + 2]
mov dword [ebx + 0xe4], eax
call fcn.00403594
mov eax, dword [ebx + 0x60]
mov dword [0x459fd4], eax
mov eax, dword [ebx + 0xd8]
mov dword [0x459fd0], eax
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0xe0]
lea esi, [eax + ecx + 3]
mov eax, esi
shl eax, 3
push eax
call fcn.0040356c
lea ecx, [eax + esi*4]
mov dword [0x459fcc], eax
mov dword [0x459fc8], ecx
mov edx, dword [ebx + 0xe0]
push 0x1e
mov esi, ebx
lea eax, [eax + edx*4 + 4]
mov edi, 0x459ed8
mov dword [0x459fcc], eax
mov eax, dword [ebx + 0xe0]
lea eax, [ecx + eax*4 + 4]
pop ecx
mov dword [0x459fc8], eax
push 0x1e
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x78]
pop ecx
mov edi, 0x459f50
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0xe0]
xor esi, esi
push esi
push dword [ebx + 0x68]
push esi
call fcn.004038cd
mov eax, dword [ebx + 0xe0]
mov ecx, dword [0x459fcc]
lea eax, [eax*4 + 4]
sub ecx, eax
push ecx
call fcn.0041ad63
push ebx
call fcn.004039d2
add esp, 0x30
cmp dword [0x459ecc], 1
push ebx
jne 0x4033c7
call fcn.00403aa2
jmp 0x4033cc
call fcn.00403b2b
cmp dword [ebp + 0x18], esi
pop ecx
mov dword [ebp + 0x28], eax
je 0x40343a
mov edi, eax
mov dword [ebp + 0x30], esi
cmp edi, esi
je 0x403445
jmp 0x4033e2
xor esi, esi
cmp dword [ebp + 0x30], esi
jne 0x403445
push edi
mov dword [ebp + 0x24], edi
call fcn.0040432a
push dword [ebp + 0x18]
mov esi, eax
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
mov edi, dword [esi]
lea eax, [ebp + 0xc]
and dword [esi], 0
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp + 0x24]
call fcn.0040432f
add esp, 0x24
mov dword [esi], edi
cmp dword [ebp + 0x20], 0
jne 0x40342b
cmp dword [ebp + 0x1c], 0
je 0x403432
mov dword [ebp + 0x30], 1
test edi, edi
jne 0x4033e0
xor esi, esi
jmp 0x403445
xor eax, eax
cmp dword [ebp + 0x28], esi
setne al
mov dword [ebp + 0x30], eax
cmp dword [ebp + 0x2c], esi
je 0x40345e
push dword [ebp + 0x34]
push dword [ebp + 0x2c]
push ebx
push dword [ebp + 0x30]
call fcn.004054d7
add esp, 0x10
jmp 0x4034ab
cmp dword [ebp + 0x30], esi
jne 0x40346b
cmp dword [0x4563b0], esi
jne 0x4034ab
push dword [0x459f54]
push dword [0x459edc]
call fcn.00403ba6
mov eax, dword [0x459ecc]
pop ecx
sub eax, esi
pop ecx
je 0x40349a
dec eax
jne 0x4034ab
push dword [ebp + 0x18]
push dword [ebp + 0x34]
push dword [ebp + 0x28]
call fcn.00403bc0
jmp 0x4034a8
push dword [ebp + 0x18]
push dword [ebp + 0x34]
push dword [ebp + 0x28]
call fcn.00403bc0
add esp, 0xc
push dword [ebx + 0x60]
call fcn.0041ad63
mov eax, dword [ebx + 0x6c]
dec eax
push eax
call fcn.0041ad63
pop ecx
lea esi, [ebx + 0xd4]
pop ecx
push 2
pop edi
push dword [esi]
call fcn.0041ad63
sub esi, 0x78
dec edi
pop ecx
jne 0x4034c8
push 2
lea esi, [ebx + 0x3c]
pop edi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
lea eax, [ecx + eax*4]
push eax
call fcn.0041ad63
add esi, 0x78
dec edi
pop ecx
jne 0x4034dc
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x403507
mov esi, dword [eax]
push eax
call fcn.0041ad63
test esi, esi
pop ecx
mov eax, esi
jne 0x4034f8
lea esi, [ebx + 0xa8]
mov ebx, dword [ebx + 0x30]
cmp ebx, dword [esi]
je 0x40351b
push ebx
call fcn.0041ad63
pop ecx
push dword [esi]
call fcn.0041ad63
mov eax, dword [ebp + 0x30]
pop ecx
pop edi
pop esi
pop ebx
pop ebp
ret