Function at 0x4ac410
Capabilities:
Read file on windows

Disassembly:
push edi
push esi
push ebp
sub esp, 0x30
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
xor ecx, ecx
xor esi, esi
test ebp, ebp
je 0x4ac6bb
mov ebp, dword [ebp + 0x7c]
test ebp, ebp
je 0x4ac6bb
mov edi, dword [ebp]
test edi, edi
je 0x4ac6af
test edx, edx
je 0x4ac67b
mov dword [ebp + 0x10], eax
mov edi, dword [ebp + 0x5c]
cmp edx, edi
jbe 0x4ac45d
mov edx, edi
mov dword [ebp + 0x14], edi
jmp 0x4ac460
mov dword [ebp + 0x14], edx
test edx, edx
jbe 0x4ac665
lea edx, [ebp + 4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ebx
mov edi, dword [ebp + 8]
test edi, edi
jne 0x4ac50f
mov edx, dword [ebp + 0x58]
test edx, edx
jbe 0x4ac50f
mov edi, 0x4000
cmp edx, 0x4000
jae 0x4ac4ad
mov edi, edx
test edx, edx
jne 0x4ac4ad
mov ebx, dword [esp + 0x28]
xor eax, eax
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x3c]
mov dword [esp], ecx
add edx, dword [ebp + 0x68]
mov dword [esp + 4], edx
mov dword [esp + 8], 0
call dword [sym.imp.MSVCRT.dll_fseek]
test eax, eax
jne 0x4ac6c7
mov ecx, dword [ebp]
mov edx, dword [ebp + 0x60]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], 1
mov dword [esp + 0xc], edx
call dword [sym.imp.MSVCRT.dll_fread]
cmp eax, 1
jne 0x4ac69f
add dword [ebp + 0x3c], edi
mov ecx, dword [ebp + 0x58]
sub ecx, edi
mov dword [ebp + 0x58], ecx
mov edx, dword [ebp]
mov dword [ebp + 4], edx
mov dword [ebp + 8], edi
mov edx, dword [ebp + 0x64]
test edx, edx
jne 0x4ac5f0
mov ebx, dword [ebp + 0x14]
cmp ebx, edi
jb 0x4ac523
mov ebx, edi
xor edx, edx
test ebx, ebx
jbe 0x4ac5a4
cmp ebx, 6
jb 0x4ac593
lea eax, [ebx - 6]
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], ebx
lea esi, [esi]
mov esi, dword [ebp + 4]
mov cl, byte [esi + edx]
mov edi, dword [ebp + 0x10]
mov byte [edi + edx], cl
mov ecx, dword [ebp + 4]
mov cl, byte [ecx + edx + 1]
mov ebx, dword [ebp + 0x10]
mov byte [ebx + edx + 1], cl
mov ecx, dword [ebp + 4]
mov cl, byte [ecx + edx + 2]
mov ebx, dword [ebp + 0x10]
mov byte [ebx + edx + 2], cl
mov ecx, dword [ebp + 4]
mov bl, byte [ecx + edx + 3]
mov ecx, dword [ebp + 0x10]
mov byte [ecx + edx + 3], bl
mov ecx, dword [ebp + 4]
mov cl, byte [ecx + edx + 4]
mov ebx, dword [ebp + 0x10]
mov byte [ebx + edx + 4], cl
add edx, 5
cmp edx, eax
jbe 0x4ac540
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov al, byte [ecx + edx]
mov edi, dword [ebp + 0x10]
mov byte [edi + edx], al
inc edx
cmp edx, ebx
jb 0x4ac593
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.0052dd30
mov dword [ebp + 0x50], eax
mov ecx, dword [ebp + 0x5c]
sub ecx, ebx
mov dword [ebp + 0x5c], ecx
mov edx, dword [ebp + 8]
sub edx, ebx
mov dword [ebp + 8], edx
mov edx, dword [ebp + 0x14]
sub edx, ebx
mov dword [ebp + 0x14], edx
add esi, ebx
add dword [ebp + 0x10], ebx
add dword [ebp + 4], ebx
add dword [ebp + 0x18], ebx
jmp 0x4ac655
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov dword [esp], edx
mov dword [esp + 4], 2
call fcn.0052e040
mov dword [esp + 0x24], eax
mov ebx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x50]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
sub ebx, edi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.0052dd30
mov dword [ebp + 0x50], eax
mov edx, dword [ebp + 0x5c]
sub edx, ebx
mov dword [ebp + 0x5c], edx
sub esi, edi
mov ebx, dword [esp + 0x24]
add esi, dword [esp + 0x18]
cmp ebx, 1
je 0x4ac68c
mov edx, ebx
test edx, edx
jne 0x4ac684
mov edx, dword [ebp + 0x14]
test edx, edx
ja 0x4ac477
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
test ecx, ecx
jne 0x4ac672
mov eax, esi
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov eax, ecx
add esp, 0x30
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov ecx, edx
mov ebx, dword [esp + 0x28]
jmp 0x4ac672
mov ebx, dword [esp + 0x28]
test esi, esi
jne 0x4ac696
xor esi, esi
mov eax, esi
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0x28]
mov eax, 0xffffffff
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffff9c
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffff9a
add esp, 0x30
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0x28]
mov eax, 0xffffffff
add esp, 0x30
pop ebp
pop esi
pop edi
ret