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

Disassembly:
push 0xffffffffffffffff
push 0x10107300
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101561c0]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov esi, dword [esp + 0x6c]
push esi
call fcn.1000fd30
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
add esp, 4
push eax
mov eax, dword [esp + 0x6c]
push eax
push ebx
push ecx
call fcn.1000fd30
mov ebp, dword [esp + 0x6c]
add esp, 4
push eax
push ebp
call fcn.1000fd30
mov edi, dword [esp + 0x6c]
add esp, 4
push eax
push edi
call fcn.1000fd30
add esp, 4
push eax
push str.gsps:__s____s____s___lx__lu___s_
push 0xa
push 0x10158458
call fcn.1000f760
add esp, 0x24
test ebx, ebx
je 0x1000aeb0
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1000aeb0
test ebp, ebp
je 0x1000ae9b
cmp word [ebp], 0
je 0x1000ae9b
test esi, esi
je 0x1000ae9b
cmp word [esi], 0
je 0x1000ae9b
push 1
lea ecx, [esp + 0x38]
call fcn.1000e0c0
push 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x54], 0
call fcn.1000e0c0
mov byte [esp + 0x50], 1
test edi, edi
je 0x1000ac7b
lea edx, [esp + 0x18]
push edx
push 0xffffffffffffffff
push edi
push 0
lea ecx, [esp + 0x44]
call fcn.1000e4e0
test eax, eax
jne 0x1000ac7b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call fcn.1000e6d0
add esp, 8
mov esi, eax
mov edi, vtable.CAhnI2s_Memory.0
lea ecx, [esp + 0x20]
mov byte [esp + 0x50], 0
mov dword [esp + 0x20], edi
call fcn.1000e230
lea ecx, [esp + 0x34]
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x34], edi
call fcn.1000e230
mov eax, esi
jmp 0x1000aec6
lea edx, [esp + 0x18]
push edx
push 0xffffffffffffffff
push ebp
push 0
lea ecx, [esp + 0x30]
call fcn.1000e4e0
test eax, eax
je 0x1000ac34
xor ebp, ebp
push ebp
push ebp
push 3
push ebp
push 1
push closesocket
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [esp + 0x5c], edi
cmp edi, 0xffffffff
jne 0x1000acc4
mov ebp, 0x220f1f07
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1000ae4e
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
jne 0x1000ace2
mov ebp, 0x220f1f0b
mov esi, 0x103
jmp 0x1000ae43
cmp esi, 0xffffffff
jne 0x1000acf9
mov ebp, 0x220f1f08
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1000ae43
lea edx, [esp + 0x6c]
lea eax, [esi + 1]
push edx
push eax
call fcn.1000a8f0
mov ebx, eax
mov eax, dword [esp + 0x6c]
push 0
push eax
call fcn.1000a8f0
mov edi, eax
test ebx, ebx
je 0x1000ae17
test edi, edi
je 0x1000ae17
mov edx, dword [esp + 0x5c]
push 0
lea ecx, [esp + 0x18]
push ecx
push esi
push ebx
push edx
mov dword [esp + 0x28], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1000ad55
mov ebp, 0x220f1f09
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1000ae27
cmp dword [esp + 0x14], esi
je 0x1000ad67
mov ebp, 0x220f1f09
xor esi, esi
jmp 0x1000ae27
mov eax, dword [esp + 0x6c]
push 0
push eax
push ebx
push edi
call fcn.1000ab20
mov ecx, dword [esp + 0x58]
mov byte [edi + esi], 0
mov eax, edi
mov dword [esp + 0x6c], ebp
test ecx, ecx
je 0x1000ad9e
cmp word [ecx], bp
je 0x1000ad9e
mov ecx, dword [esp + 0x38]
push ecx
lea edx, [esp + 0x70]
push edx
call fcn.1000a660
add esp, 8
test eax, eax
jne 0x1000adae
mov ebp, 0x220f1f0b
mov esi, 0x103
jmp 0x1000ae27
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x70]
push edx
call fcn.1000a7c0
add esp, 8
test eax, eax
jne 0x1000add9
cmp dword [esp + 0x6c], ebp
mov esi, 0x103
setne al
add eax, 0x220f1f0c
mov ebp, eax
jmp 0x1000ae27
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x18]
push edx
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x74]
push 0
mov byte [ecx], 0
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.1000f920
add esp, 0x18
test eax, eax
jne 0x1000ae23
mov esi, dword [esp + 0x18]
xor edx, edx
cmp esi, 0x7a
sete dl
lea edx, [edx*8 + 0x220f1f06]
mov ebp, edx
jmp 0x1000ae27
mov ebp, 0x220f1e01
mov esi, 0xe
jmp 0x1000ae27
mov esi, dword [esp + 0x64]
test ebx, ebx
je 0x1000ae31
push ebx
call fcn.1000a970
test edi, edi
je 0x1000ae3b
push edi
call fcn.1000a970
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x64]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebp, ebp
je 0x1000ae78
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x1000ae5b
mov word [ebx], ax
jmp 0x1000ae67
mov ecx, dword [esp + 0x68]
push eax
push ecx
push ebx
call fcn.10002270
push esi
push ebp
call fcn.1000e600
push edx
push eax
call fcn.1000e6d0
add esp, 0x10
xor edx, edx
test ebp, ebp
sete dl
mov esi, edx
push esi
push str.gsps_ld
push 0xa
push 0x10158458
call fcn.1000f810
add esp, 0x10
jmp 0x1000ac48
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x1000aea8
mov word [ebx], ax
jmp 0x1000aeb0
push eax
push ecx
push ebx
call fcn.10002270
push 0x57
push 0x220f1f01
call fcn.1000e600
push edx
push eax
call fcn.1000e6d0
add esp, 0x10
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x18