Function at 0x5ac6e0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x20
mov eax, dword [0x70a308]
xor eax, esp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
push ebp
push esi
push edi
mov esi, ecx
xor edi, edi
push edi
lea ecx, [esp + 0x10]
push ecx
mov ebp, 8
push ebp
lea edx, [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x28]
push edx
push eax
mov dword [esp + 0x20], edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x5ac951
cmp dword [esp + 0xc], ebp
jne 0x5ac951
add dword [esi + 0x30], ebp
mov ecx, dword [esp + 0x18]
push ebx
adc dword [esi + 0x34], edi
push ecx
call sub.WS2_32.dll_ntohl
cdq
mov edi, eax
mov ebx, edx
cmp edi, 1
jne 0x5ac7c7
test ebx, ebx
jne 0x5ac7c7
mov ecx, dword [esi + 0x28]
push edx
lea edx, [esp + 0x14]
push edx
push ebp
lea eax, [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x5ac7ad
cmp dword [esp + 0x10], ebp
jne 0x5ac7ad
add dword [esi + 0x30], ebp
lea edx, [esp + 0x24]
push edx
adc dword [esi + 0x34], ebx
mov ecx, esi
call fcn.00588c30
mov ebx, edx
mov edi, eax
test ebx, ebx
jg 0x5ac7a8
jl 0x5ac78e
cmp edi, 0x10
jae 0x5ac7a8
mov eax, 0xfffffffa
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
add edi, 0xfffffff0
jmp 0x5ac804
pop ebx
pop edi
pop esi
mov eax, 0xfffffffb
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
test edi, edi
jne 0x5ac7dd
test ebx, ebx
jne 0x5ac7df
mov edi, dword [esi + 0x20]
sub edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x24]
sbb ebx, dword [esi + 0x34]
jmp 0x5ac807
test ebx, ebx
jg 0x5ac801
jl 0x5ac7e7
cmp edi, ebp
jae 0x5ac801
pop ebx
pop edi
pop esi
mov eax, 0xfffffff9
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
add edi, 0xfffffff8
adc ebx, 0xffffffff
cmp dword [esp + 0x20], 0x78646973
jne 0x5ac8e4
mov ecx, dword [esp + 0x38]
xor eax, eax
cmp ebx, eax
jl 0x5ac83f
jg 0x5ac825
cmp edi, ecx
jbe 0x5ac83f
pop ebx
pop edi
pop esi
mov eax, 0xfffffff8
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
test ebx, ebx
jg 0x5ac864
jl 0x5ac84a
cmp edi, 0x18
jae 0x5ac864
pop ebx
pop edi
pop esi
mov eax, 0xfffffff4
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
mov ebp, dword [esp + 0x14]
mov ecx, dword [esi + 0x28]
push 0
lea eax, [esp + 0x14]
push eax
push edi
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x5ac8ca
mov eax, dword [esp + 0x10]
cmp eax, edi
jne 0x5ac8ca
push eax
push ebp
mov ecx, esi
call fcn.005ac570
cmp eax, 1
jne 0x5ac793
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
add edx, edi
adc ecx, ebx
add dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
pop ebx
adc dword [esi + 0x14], ecx
add dword [esi + 0x18], edx
mov ecx, dword [esi + 0x14]
pop edi
adc dword [esi + 0x1c], ecx
pop esi
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
pop ebx
pop edi
pop esi
mov eax, 0xfffffff7
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
add eax, edi
push 0
adc edx, ebx
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x28]
push eax
push edx
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x5ac931
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x5ac931
pop ebx
pop edi
pop esi
mov eax, 0xfffffff6
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
add dword [esi + 0x30], edi
mov eax, 0xfffffff5
adc dword [esi + 0x34], ebx
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005f85e7
add esp, 0x20
ret 8
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
xor ecx, esp
mov eax, 0xfffffffc
call fcn.005f85e7
add esp, 0x20
ret 8