Function at 0x96a060
Capabilities:
Get file size
Read file on windows

Disassembly:
mov eax, 0x1080
call fcn.00a91950
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x107c], eax
mov eax, dword [esp + 0x108c]
push ebx
push ebp
mov ebp, dword [esp + 0x108c]
push esi
push edi
xor edi, edi
push 0x5f
mov esi, ecx
lea ecx, [esp + 0x2d]
push edi
push ecx
mov ebx, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edi
mov byte [esp + 0x34], 0
call fcn.00a7ffb0
add esp, 0xc
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
cmp ebp, edi
je 0x96a0c0
mov dword [ebp], edi
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x96a0ca
mov dword [eax], edi
push 0xaa1574
push esi
call fcn.00a7932f
mov edi, eax
add esp, 8
test edi, edi
jne 0x96a134
call fcn.00966a70
test eax, eax
je 0x96a11d
xor ecx, ecx
call fcn.009790d0
test eax, eax
je 0x96a11d
push edi
push edi
push edi
xor edx, edx
xor ecx, ecx
call fcn.009873e0
add esp, 0xc
test eax, eax
jne 0x96a11d
push 0xaa1574
push esi
mov dword [esp + 0x20], 1
call fcn.00a7932f
add esp, 8
mov edi, eax
test edi, edi
jne 0x96a134
cmp dword [esp + 0x18], 1
jne 0x96a12d
call fcn.00987380
xor eax, eax
jmp 0x96a2e2
test ebx, ebx
je 0x96a165
test edi, edi
je 0x96a181
push 2
push 0
push edi
call fcn.00a79da2
add esp, 0xc
test eax, eax
jne 0x96a158
push edi
call fcn.00a7d201
add esp, 4
mov dword [ebx], eax
push 0
push 0
push edi
call fcn.00a79da2
add esp, 0xc
test edi, edi
je 0x96a18d
push edi
push 0x40
lea edx, [esp + 0x30]
push 1
push edx
call fcn.00a799fb
add esp, 0x10
mov dword [esp + 0x14], eax
jmp 0x96a1c1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebx], eax
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 1
push 0
push 0
push 0
call esi
push 0
push 0
push 0
push 0
mov dword [esp + 0x2c], eax
call esi
push 0
lea eax, [esp + 0x18]
push eax
push 0x40
lea ecx, [esp + 0x34]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x14], 0x40
jb 0x96a2b0
mov ebx, dword [esp + 0x1098]
mov edx, dword [esp + 0x24]
push ebx
push ebp
mov ecx, edi
lea esi, [esp + 0x30]
call fcn.00969c10
add esp, 8
mov esi, eax
test ebp, ebp
je 0x96a2b4
cmp dword [ebp], 0
je 0x96a2b4
cmp ebx, 2
jne 0x96a2b4
push ebx
push 0
push edi
call fcn.00a79da2
add esp, 0xc
test eax, eax
jne 0x96a2a1
push edi
call fcn.00a7d201
add esp, 4
cmp eax, 0x2000
jbe 0x96a2a1
push 0xfff
lea edx, [esp + 0x8d]
push 0
push edx
mov byte [esp + 0x94], 0
call fcn.00a7ffb0
add esp, 0xc
push ebx
push 0xfffff000
push edi
call fcn.00a79da2
add esp, 0xc
push edi
push 0x1000
lea eax, [esp + 0x90]
push 1
push eax
call fcn.00a799fb
add esp, 0x10
cmp eax, 0x1000
jne 0x96a2a1
lea ecx, [esp + 0x20]
push ecx
push eax
push 0
push 0
push str.SHIROUZU
lea edx, [esp + 0x9c]
push str.ip_messenger
push edx
call fcn.0095cb10
add esp, 0x1c
cmp eax, 0xffffffff
je 0x96a2a1
mov dword [ebp], ebx
push 0
push 0
push edi
call fcn.00a79da2
add esp, 0xc
jmp 0x96a2b4
mov esi, dword [esp + 0x20]
test edi, edi
je 0x96a2c3
push edi
call fcn.00a79e9e
add esp, 4
jmp 0x96a2d4
mov eax, dword [esp + 0x1c]
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [esp + 0x18], 1
jne 0x96a2e0
call fcn.00987380
mov eax, esi
mov ecx, dword [esp + 0x108c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00a78f21
add esp, 0x1080
ret 0xc