Function at 0x4ac1d0
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov eax, dword [esp + 0xf4]
test eax, eax
jle 0x4ac4d9
mov esi, dword [esp + 0xf0]
xor edi, edi
jmp 0x4ac269
lea eax, [esi + 0x5088]
push ecx
push 0x100
push 0
push eax
call sub.msvcrt.dll_memset
mov dword [esi + 0x80], 0
pop eax
pop edx
push 0x5924e0
push str.bor.pak
call sub.msvcrt.dll_fopen
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4ac255
push eax
push 1
push 4
lea eax, [esp + 0xd8]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
jne 0x4ac485
sub esp, 0xc
push ebx
call sub.msvcrt.dll_fclose
add esp, 0x10
inc edi
add esi, 0x548c
cmp edi, dword [esp + 0xf4]
je 0x4ac4d9
push eax
push 1
push esi
push str.bor.pak
call fcn.004bca30
pop ebx
pop ebp
push str..pak
push str.bor.pak
call fcn.004bcb50
add esp, 0x10
test eax, eax
jne 0x4ac1f4
push ebx
push ebx
push str..spk
push str.bor.pak
call fcn.004bcb50
add esp, 0x10
test eax, eax
je 0x4ac255
lea eax, [esi + 0x5088]
push ecx
push 0x100
push 0
push eax
call sub.msvcrt.dll_memset
mov dword [esi + 0x80], 0
pop eax
pop edx
push 0x5924e0
push str.bor.pak
call sub.msvcrt.dll_fopen
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4ac255
push eax
push 1
push 4
lea eax, [esp + 0xd8]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x4ac249
push ebx
push 1
push 4
lea ecx, [esp + 0xe4]
push ecx
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x4ac249
push ebx
push 1
push 4
lea eax, [esp + 0xe0]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x4ac249
push eax
push 2
push 0xfffffffffffffffc
push ebx
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
js 0x4ac249
push ebx
push 1
push 4
lea eax, [esp + 0xdc]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x4ac249
push eax
push 0
mov eax, dword [esp + 0xd8]
push eax
push ebx
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
js 0x4ac249
push ebx
push 0x60
push 1
lea eax, [esp + 0x1c]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
cmp eax, 0x10
jle 0x4ac249
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add ecx, edx
sub ecx, eax
mov ebp, dword [esp + 0x18]
mov dword [esp + 8], ecx
mov dword [esp + 0x14], ecx
mov ecx, eax
sub ecx, edx
add ebp, ecx
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x1c]
add edx, ebp
mov ebp, dword [esp + 8]
sub edx, eax
sub ebp, 0xc
mov dword [esp + 0x1c], edx
je 0x4ac3fb
mov cl, 0xc
xor edx, edx
sub cl, byte [esp + 8]
mov al, cl
sub al, dl
add byte [esp + edx + 0x20], al
inc edx
cmp edx, ebp
jne 0x4ac3ee
push ecx
push ecx
push 0x2e
lea eax, [esp + 0x2c]
push eax
call sub.msvcrt.dll_strrchr
add esp, 0x10
test eax, eax
je 0x4ac424
push edx
push edx
push str..bor
push eax
call sub.msvcrt.dll__stricmp
add esp, 0x10
test eax, eax
je 0x4ac43c
push ebp
push ebp
push 0x5924fb
lea ecx, [esp + 0x2c]
push ecx
call fcn.004bcb50
add esp, 0x10
test eax, eax
je 0x4ac465
push ecx
push ecx
push str..bor
lea eax, [esp + 0x2c]
push eax
call fcn.004bcb50
add esp, 0x10
test eax, eax
je 0x4ac465
mov eax, dword [esi + 0x80]
cmp eax, 0xff
jle 0x4ac5c6
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x14]
add eax, ecx
add eax, 4
mov dword [esp + 0xd0], eax
push edx
push 0
push eax
jmp 0x4ac37c
push eax
push 2
push 0xfffffffffffffffc
push ebx
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
js 0x4ac249
push ebx
push 1
push 4
lea eax, [esp + 0xdc]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x4ac249
push eax
push 0
mov ebp, dword [esp + 0xd8]
push ebp
push ebx
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
lea ebp, [esp + 0x7c]
jns 0x4ac544
jmp 0x4ac249
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
shl eax, 8
push edx
push edx
lea eax, [esi + eax + 0x84]
push eax
push ebp
call fcn.004ac150
mov edx, dword [esi + 0x80]
mov eax, dword [esp + 0xe0]
add esp, 0x10
mov dword [esi + edx*4 + 0x5088], eax
mov eax, dword [esi + 0x80]
inc eax
mov dword [esi + 0x80], eax
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0x70]
add eax, ecx
mov dword [esp + 0xd0], eax
push edx
push 0
push eax
push ebx
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
js 0x4ac249
push ebx
push 0x5c
push 1
lea ecx, [esp + 0x7c]
push ecx
call sub.msvcrt.dll_fread
add esp, 0x10
cmp eax, 0xc
jle 0x4ac249
push ecx
push ecx
push 0x2e
push ebp
call sub.msvcrt.dll_strrchr
add esp, 0x10
test eax, eax
je 0x4ac584
push edx
push edx
push str..bor
push eax
call sub.msvcrt.dll__stricmp
add esp, 0x10
test eax, eax
je 0x4ac598
push eax
push eax
push 0x5924fb
push ebp
call fcn.004bcb50
add esp, 0x10
test eax, eax
je 0x4ac51b
push ecx
push ecx
push str..bor
push ebp
call fcn.004bcb50
add esp, 0x10
test eax, eax
je 0x4ac51b
mov eax, dword [esi + 0x80]
cmp eax, 0xff
jg 0x4ac51b
jmp 0x4ac4e4
shl eax, 8
push edx
push edx
lea eax, [esi + eax + 0x84]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.004ac150
mov edx, dword [esi + 0x80]
mov ebp, dword [esi + 0x80]
mov eax, dword [esp + 0xe0]
inc ebp
add esp, 0x10
mov dword [esi + edx*4 + 0x5088], eax
mov dword [esi + 0x80], ebp
jmp 0x4ac465