Function at 0x1400b5b90
Capabilities:
Get common file path
Get file size
Read file on windows
Write file on windows

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x690
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1401620c0]
xor rax, rsp
mov qword [rsp + 0x680], rax
mov rbx, rdx
mov rdi, rcx
or esi, 0xffffffff
mov dword [rsp + 0x44], esi
lea rcx, [rsp + 0x50]
mov rax, qword [str._rename_]
mov qword [rcx], rax
movzx eax, byte [0x1400fdfd8]
mov byte [rcx + 8], al
mov byte [rsp + 0x60], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rsp + 0x61]
call fcn.1400c2840
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test eax, eax
jne 0x1400b5cb1
test rbx, rbx
jne 0x1400b5c93
xor r14d, r14d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileA]
cmp rax, 0xffffffffffffffff
je 0x1400b5c5f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test eax, eax
jne 0x1400b5cb4
lea rcx, [rsp + 0x60]
nop
movzx eax, byte [rdi]
mov byte [rcx], al
add rdi, 1
add rcx, 1
test al, al
jne 0x1400b5c80
jmp 0x1400b5cb4
lea rcx, [rsp + 0x60]
nop
nop
movzx eax, byte [rdi]
mov byte [rcx], al
add rdi, 1
add rcx, 1
test al, al
jne 0x1400b5ca0
xor r14d, r14d
xor edx, edx
mov r8d, 0x400
lea rcx, [rsp + 0x280]
call fcn.1400c2840
test rbx, rbx
jne 0x1400b5cf1
lea r9, [rsp + 0x60]
lea r8, [0x1400fdfc8]
lea rdx, str._hs_hs
lea rcx, [rsp + 0x280]
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x1400b5d0e
lea r9, [rsp + 0x60]
mov r8, rbx
lea rdx, str._hs_hs
lea rcx, [rsp + 0x280]
call qword [sym.imp.USER32.dll_wsprintfA]
lea rcx, [rsp + 0x280]
call fcn.1400e23d0
mov edx, 0x104
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdi, [rsp + 0x170]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [str.wininit.ini]
mov qword [rdi - 1], rax
mov eax, dword [0x1400fdfb8]
mov dword [rdi + 7], eax
movzx eax, byte [0x1400fdfbc]
mov byte [rdi + 0xb], al
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x1400b6044
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r12d, eax
cmp eax, esi
je 0x1400b603a
mov dword [rsp + 0x40], r14d
lea ebx, [rax + 0x1000]
lea ecx, [rax + 1]
mov edi, ecx
call fcn.14008c4a0
mov r13, rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400c2840
mov edi, ebx
mov ecx, ebx
call fcn.14008c4a0
mov rbx, rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400c2840
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
mov r8d, r12d
mov rdx, r13
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400b602a
cmp dword [rsp + 0x40], r12d
jne 0x1400b602a
mov rcx, r13
mov rdx, rbx
nop
movzx eax, byte [rcx]
mov byte [rdx], al
add rcx, 1
add rdx, 1
test al, al
jne 0x1400b5e20
mov rcx, r13
call fcn.1400e23d0
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.1400c2e00
test rax, rax
je 0x1400b5f35
lea rcx, [rax + 1]
mov edx, 0x5b
call fcn.1400c7750
mov r11, rax
test rax, rax
je 0x1400b5ee6
mov rcx, rax
sub rcx, r13
mov byte [rcx + rbx], 0
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x280]
xor ecx, ecx
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x1400b5e90
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x1400e7464]
mov word [rdi - 1], ax
movzx eax, byte [0x1400e7466]
mov byte [rdi + 1], al
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
nop
movzx eax, byte [r11 + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x1400b5ed0
jmp 0x1400b5fd0
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x280]
xor ecx, ecx
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x1400b5f00
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x1400e7464]
mov word [rdi - 1], ax
movzx eax, byte [0x1400e7466]
mov byte [rdi + 1], al
jmp 0x1400b5fd0
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x50]
xor ecx, ecx
nop
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x1400b5f50
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x1400e7464]
mov word [rdi - 1], ax
movzx eax, byte [0x1400e7466]
mov byte [rdi + 1], al
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x280]
xor ecx, ecx
nop
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x1400b5fa0
mov rdi, rbx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x1400e7464]
mov word [rdi - 1], ax
movzx eax, byte [0x1400e7466]
mov byte [rdi + 1], al
mov dword [rsp + 0x40], r14d
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
mov r8d, edi
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400b602a
cmp dword [rsp + 0x40], edi
cmove esi, r14d
mov dword [rsp + 0x44], esi
mov rcx, rbx
call fcn.14008c4f0
mov rcx, r13
call fcn.14008c4f0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov eax, esi
jmp 0x1400b604c
mov rcx, qword [rsp + 0x680]
xor rcx, rsp
call fcn.1400c2a20
lea r11, [rsp + 0x690]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret