Function at 0x40ff21
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x105c
call fcn.0042281f
mov eax, dword [0x42e440]
xor eax, esp
mov dword [esp + 0x1054], eax
mov eax, dword [esp + 0x1060]
push ebx
push ebp
mov ebp, dword [esp + 0x1074]
mov ebx, ecx
push esi
mov esi, dword [esp + 0x1070]
push edi
push 8
pop ecx
mov dword [esp + 0x10], eax
lea edi, [esp + 0x20]
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], ebp
rep stosd dword es:[edi], eax
lea edi, [esp + 0x40]
push 8
pop ecx
rep stosd dword es:[edi], eax
test esi, esi
je 0x41017e
test ebp, ebp
je 0x41017e
mov esi, dword [esp + 0x1078]
xor ecx, ecx
mov dword [ebp], ecx
test esi, esi
jne 0x40ffa2
push 0x42b3e0
jmp 0x410183
mov ebp, ecx
test esi, esi
je 0x40ffe3
lea edi, [esp + 0x20]
test edx, edx
je 0x40ffd4
test edi, edi
je 0x40ffd4
push edi
push ecx
push ecx
push 0x8004
push edx
mov dword [edi], ecx
call dword [0x423044]
mov edx, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
dec eax
xor ecx, ecx
jmp 0x40ffd7
or eax, 0xffffffff
test eax, eax
jne 0x40fffd
inc ebp
add edi, 4
cmp ebp, esi
jb 0x40ffac
push ecx
push ecx
push ecx
push ebx
call fcn.004184ec
add esp, 0x10
test eax, eax
je 0x410007
push 0x42b440
jmp 0x410183
push 0x42b410
jmp 0x410183
push 0x42b46c
push esi
lea eax, [esp + 0x28]
mov ecx, ebx
push eax
push 0x14
lea edx, [esp + 0x70]
call fcn.0040fac4
add esp, 0x10
test eax, eax
jne 0x410193
xor ebp, ebp
test esi, esi
je 0x41010a
lea edi, [esp + 0x40]
push 0x42b47c
push esi
lea eax, [esp + 0x28]
mov ecx, ebx
push eax
push 4
lea edx, [esp + 0x70]
call fcn.0040fac4
add esp, 0x10
test eax, eax
jne 0x410193
push 0x42b494
push esi
lea eax, [esp + 0x28]
mov edx, edi
push eax
push 4
mov ecx, ebx
call fcn.0040fac4
add esp, 0x10
test eax, eax
jne 0x410193
push dword [edi]
call dword [0x42f540]
mov dword [edi], eax
cmp eax, 0x800
ja 0x4100b3
push 1
push 0
push eax
push ebx
call fcn.004184ec
add esp, 0x10
test eax, eax
jne 0x4100a9
inc ebp
add edi, 4
cmp ebp, esi
jb 0x410038
jmp 0x41010a
push 0x42b4d8
jmp 0x410183
push 0x42b4a8
jmp 0x410183
push ebx
push 0x1000
lea eax, [esp + 0x68]
push 1
push eax
call fcn.004160dd
push ebx
mov dword [esp + 0x2c], eax
call fcn.004184c6
add esp, 0x14
test eax, eax
jne 0x410170
xor edi, edi
test esi, esi
je 0x41010a
lea ebp, [esp + 0x20]
push dword [esp + 0x18]
lea edx, [esp + 0x64]
mov ecx, ebp
call fcn.0040faa1
pop ecx
test eax, eax
jne 0x410169
inc edi
add ebp, 4
cmp edi, esi
jb 0x4100ee
push ebx
call fcn.004184a0
pop ecx
test eax, eax
je 0x4100bd
xor edi, edi
test esi, esi
je 0x410165
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x40]
mov ecx, dword [esp + 0x10]
lea ebp, [esp + 0x20]
sub ecx, eax
sub ebx, eax
mov dword [esp + 0x10], ecx
sub ebp, eax
push dword [ebx + eax]
lea edx, [ecx + eax]
push dword [eax]
lea ecx, [eax + ebp]
call fcn.0040f94d
pop ecx
pop ecx
test eax, eax
jne 0x410177
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
inc dword [eax]
inc edi
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp edi, esi
jb 0x410135
xor eax, eax
jmp 0x410196
push 0x42b524
jmp 0x410183
push 0x42b500
jmp 0x410183
push 0x42b55c
jmp 0x410183
push 0x42b074
call fcn.00416885
add eax, 0x40
push eax
call fcn.004177c7
pop ecx
pop ecx
or eax, 0xffffffff
mov ecx, dword [esp + 0x1064]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00414f81
add esp, 0x105c
ret