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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r13, r9
mov r15, r8
mov rbp, rdx
mov r14, rcx
mov r12, qword [rsp + 0x118]
mov rcx, r12
call fcn.140019380
mov rdi, rax
mov rcx, r15
call fcn.140019380
mov rsi, rax
mov rcx, rbp
call fcn.140019380
mov rbx, rax
mov rcx, r14
call fcn.140019380
mov r9, rax
mov qword [rsp + 0x40], rdi
mov edi, dword [rsp + 0x110]
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbx
lea r8, str.gsps:__s____s____s___I64x__lu___s_
mov edx, 0xa
lea rcx, [0x140178aa0]
call fcn.140018a10
test r13, r13
je 0x140017c60
test edi, edi
je 0x140017c60
test rbp, rbp
je 0x140017c2b
cmp word [rbp], 0
je 0x140017c2b
test r12, r12
je 0x140017c2b
cmp word [r12], 0
je 0x140017c2b
mov edx, 1
lea rcx, [rsp + 0x90]
call fcn.140018c40
nop
mov edx, 1
lea rcx, [rsp + 0x68]
call fcn.140018c40
nop
test r14, r14
je 0x140017908
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, r14
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.140018da0
test rax, rax
jne 0x140017908
mov rcx, qword [rsp + 0x58]
call fcn.140016f20
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x68]
call fcn.140018d10
nop
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x90]
call fcn.140018d10
mov eax, ebx
jmp 0x140017c77
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, rbp
xor edx, edx
lea rcx, [rsp + 0x68]
call fcn.140018da0
test rax, rax
jne 0x140017969
mov rcx, qword [rsp + 0x58]
call fcn.140016f20
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x68]
call fcn.140018d10
nop
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x90]
call fcn.140018d10
mov eax, ebx
jmp 0x140017c77
xor esi, esi
mov ebx, esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rsi + 1]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x60], rax
cmp rax, 0xffffffffffffffff
jne 0x1400179b8
mov ebx, 0x220f1f07
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r14d, dword [rsp + 0x110]
jmp 0x140017bae
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test eax, eax
jne 0x1400179e0
mov ebx, 0x220f1f0b
mov edi, 0x103
mov r14d, dword [rsp + 0x110]
jmp 0x140017b9f
cmp edi, 0xffffffff
jne 0x1400179ff
mov ebx, 0x220f1f08
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r14d, dword [rsp + 0x110]
jmp 0x140017b9f
lea ecx, [rdi + 1]
lea rdx, [rsp + 0x50]
call fcn.140017500
mov r12, rax
xor edx, edx
mov ecx, dword [rsp + 0x50]
call fcn.140017500
mov rbp, rax
test r12, r12
je 0x140017b73
test rax, rax
je 0x140017b73
mov dword [rsp + 0x108], edi
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x108]
mov r8d, edi
mov rdx, r12
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140017a72
mov ebx, 0x220f1f09
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r14d, dword [rsp + 0x110]
jmp 0x140017b85
cmp dword [rsp + 0x108], edi
je 0x140017a8f
mov ebx, 0x220f1f09
mov edi, esi
mov r14d, dword [rsp + 0x110]
jmp 0x140017b85
xor r9d, r9d
mov r8d, dword [rsp + 0x50]
mov rdx, r12
mov rcx, rbp
call fcn.140017780
mov byte [rdi + rbp], bl
mov rax, rbp
mov qword [rsp + 0x50], rsi
test r14, r14
je 0x140017acd
cmp word [r14], bx
je 0x140017acd
mov r8, qword [rsp + 0x98]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.1400171c0
test rax, rax
jne 0x140017ae9
mov ebx, 0x220f1f0b
mov edi, 0x103
mov r14d, dword [rsp + 0x110]
jmp 0x140017b85
mov r8, qword [rsp + 0x70]
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.140017390
mov r9, rax
test rax, rax
jne 0x140017b20
cmp qword [rsp + 0x50], rbx
setne bl
add ebx, 0x220f1f0c
mov edi, 0x103
mov r14d, dword [rsp + 0x110]
jmp 0x140017b85
mov rax, qword [rsp + 0x50]
mov byte [rax], bl
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xffffffff
xor r8d, r8d
mov r14d, dword [rsp + 0x110]
mov edx, r14d
mov rcx, r13
call fcn.140018f50
test eax, eax
jne 0x140017b6a
mov rdi, qword [rsp + 0x58]
mov ebx, 0x220f1f06
mov eax, 0x220f1f0e
cmp edi, 0x7a
cmove ebx, eax
jmp 0x140017b85
mov edi, dword [rsp + 0x108]
jmp 0x140017b85
mov ebx, 0x220f1e01
mov edi, recv
mov r14d, dword [rsp + 0x110]
test r12, r12
je 0x140017b92
mov rcx, r12
call fcn.1400175c0
test rbp, rbp
je 0x140017b9f
mov rcx, rbp
call fcn.1400175c0
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x140017bd9
test r15, r15
jne 0x140017bba
mov word [r13], si
jmp 0x140017bc8
mov edx, r14d
mov r8, r15
mov rcx, r13
call fcn.140007c70
mov edx, edi
mov ecx, ebx
call fcn.140016eb0
mov rcx, rax
call fcn.140016f20
test ebx, ebx
sete sil
mov r9d, esi
lea r8, str.gsps_ld
mov edx, 0xa
lea rcx, [0x140178aa0]
call fcn.140018ac0
nop
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x68]
call fcn.140018d10
nop
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x90]
call fcn.140018d10
mov eax, esi
jmp 0x140017c77
test r15, r15
jne 0x140017c39
xor esi, esi
mov word [r13], si
jmp 0x140017c47
mov rdx, rdi
mov r8, r15
mov rcx, r13
call fcn.140007c70
mov edx, 0x57
mov ecx, 0x220f1f01
call fcn.140016eb0
mov rcx, rax
call fcn.140016f20
jmp 0x140017c77
mov edx, 0x57
mov ecx, 0x220f1f01
call fcn.140016eb0
mov rcx, rax
call fcn.140016f20
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret