Function at 0x41a960
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov ebx, ecx
lea eax, [esp + 0x10]
lea ecx, [ebx + 0x1c]
push eax
call fcn.00439370
mov edx, eax
test edx, edx
je 0x41aa8b
mov esi, dword [ebx + 0x40]
xor eax, eax
mov edi, esi
mov ecx, 0x180
rep stosd dword es:[edi], eax
xor edi, edi
add esi, 0x18
mov dword [esi - 4], edi
mov ecx, dword [0x578594]
mov eax, dword [ecx + 0x1f4]
mov ecx, dword [esp + 0x10]
sub edx, eax
mov dword [esi], ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov dword [esi + 8], edx
mov dword [esi + 4], ecx
mov edx, dword [ebx + 0x30]
mov ebp, dword [esp + 0x10]
not edx
and edx, ebp
mov dword [esi - 0x10], edx
mov eax, dword [esp + 0x14]
mov dword [esi - 0xc], eax
mov edx, dword [ebx + 0x30]
mov ecx, dword [esp + 0x10]
and ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [ebx + 0x30]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
xor eax, eax
not edx
not eax
and edx, ecx
and eax, ebp
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
add esi, 0x30
inc edi
cmp edi, 0x20
jae 0x41aa0f
lea ecx, [esp + 0x10]
push ecx
lea ecx, [ebx + 0x1c]
call fcn.00439370
mov edx, eax
test edx, edx
jne 0x41a993
mov esi, dword [ebx + 0x40]
mov ebp, dword [ebx + 0x44]
mov dword [ebx + 0x34], 1
lea esp, [esp]
mov eax, dword [ebx + 0x28]
push esi
push 0
push 0x10000
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41aa44
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x41aa4e
lea eax, [ebx + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
add esi, 0x30
add ebp, 0x10000
dec edi
jne 0x41aa20
lea eax, [ebx + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x41ab09
mov edx, dword [ebx + 0x18]
cmp byte [edx], 0
jne 0x41aac9
lea eax, [esp + 0x10]
push eax
lea ecx, [ebx + 0x1c]
call fcn.00439370
mov edx, eax
test edx, edx
jne 0x41a980
lea eax, [ebx + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp eax, 1
jne 0x41aaff
mov eax, dword [ebx + 0x2c]
cmp eax, 1
jbe 0x41aaff
mov edi, dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
lea esi, [eax - 1]
nop
lea esp, [esp]
mov ecx, dword [ebx + 0x38]
push 0
push 0
push 0
push ecx
call edi
dec esi
jne 0x41aab0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret
mov ebx, dword [ebx + 0x10]
lea ecx, [ebx + 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp eax, 1
jne 0x41aaff
mov eax, dword [ebx + 0x2c]
cmp eax, 1
jbe 0x41aaff
mov edi, dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
lea esi, [eax - 1]
lea esp, [esp]
mov edx, dword [ebx + 0x38]
push 0
push 0
push 0
push edx
call edi
dec esi
jne 0x41aaf0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret
mov al, byte [0x576148]
test al, al
je 0x41ab53
mov ecx, 0x57613c
call fcn.004133e0
test al, al
je 0x41ab53
mov ecx, 0x576124
call fcn.0041b310
test edx, edx
ja 0x41ab53
jb 0x41ab37
cmp eax, 0x989680
jae 0x41ab53
mov ecx, 0x576124
call fcn.0041b380
mov ecx, dword [ebx + 0x14]
push ebx
call fcn.0041a2b0
test eax, eax
jne 0x41ab53
mov byte [0x576148], al
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 8
ret