Function at 0x140048c68
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov qword [rax - 0x68], 0xfffffffffffffffe
mov rax, qword [0x14009b3d0]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x60], r8
mov rax, rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x4c], 0xfffffffe
xor ebx, ebx
mov r12d, ebx
mov qword [rsp + 0x98], rbx
mov r13d, ebx
mov qword [rsp + 0x90], rbx
mov r14d, ebx
mov qword [rsp + 0x78], rbx
mov esi, ebx
mov qword [rsp + 0x80], rbx
lea edi, [rbx + 1]
mov dword [rsp + 0x40], edi
test rax, rax
je 0x140049018
test r8, r8
je 0x140049018
cmp qword [rcx + 8], rbx
je 0x140049018
xor edx, edx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__access]
or r15, 0xffffffffffffffff
cmp eax, r15d
je 0x14004901c
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
mov r8d, edi
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r12, rax
mov qword [rsp + 0x98], rax
cmp rax, r15
je 0x14004901c
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov edx, 0xc0000000
mov r8d, edi
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r13, rax
mov qword [rsp + 0x90], rax
cmp rax, r15
je 0x14004901c
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
je 0x14004901c
mov dword [rsp + 0x58], ebx
lea edi, [rbx + 0x14]
mov r8d, edi
xor edx, edx
lea rcx, [rsp + 0xa8]
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x58]
mov r8d, edi
lea rdx, [rsp + 0xa8]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, eax
mov dword [rsp + 0x40], eax
test eax, eax
je 0x14004901c
cmp dword [rsp + 0x58], 0x14
jae 0x140048dfb
mov edi, ebx
mov dword [rsp + 0x40], ebx
jmp 0x14004901c
mov eax, dword [rsp + 0xb4]
dec eax
cmp eax, 0xffffffe8
cmova edi, ebx
mov eax, dword [rsp + 0xb8]
dec eax
cmp eax, 0xfffffffc
cmova edi, ebx
mov dword [rsp + 0x40], edi
test edi, edi
je 0x14004901c
mov dword [rsp + 0x4c], r15d
lea rcx, [rsp + 0x68]
call qword [sym.imp.mfc140.dll_Ordinal_316]
nop
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
call fcn.140048ba4
test eax, eax
je 0x14004900b
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0xb4]
add rax, 0x14
cmp rax, rcx
jne 0x14004900b
xor edx, edx
lea rcx, [rsp + 0x68]
call qword [sym.imp.mfc140.dll_Ordinal_4937]
lea rdx, [rsp + 0xa8]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
test eax, eax
jne 0x14004900b
mov eax, dword [rsp + 0xb8]
inc eax
mov dword [rsp + 0x50], eax
mov esi, 1
mov edx, esi
mov ecx, dword [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov r14, rax
mov qword [rsp + 0x78], rax
mov ecx, dword [rsp + 0x50]
mov edx, esi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rsi, rax
mov qword [rsp + 0x80], rax
test r14, r14
je 0x14004900b
test rax, rax
je 0x14004900b
mov dword [rsp + 0x88], ebx
mov dword [rsp + 0x4c], ebx
mov r8d, dword [rsp + 0x48]
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
mov r8d, dword [rsp + 0x50]
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov dword [rsp + 0x54], ebx
cmp dword [rsp + 0x48], ebx
jle 0x140048f62
mov qword [rsp + 0x60], r14
test edi, edi
je 0x14004900b
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x58]
mov r8d, 1
lea rdx, [rsp + 0x44]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, eax
mov dword [rsp + 0x40], eax
test eax, eax
je 0x140048f4d
mov al, byte [rsp + 0x44]
mov rcx, qword [rsp + 0x60]
mov byte [rcx], al
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
inc qword [rsp + 0x60]
cmp eax, dword [rsp + 0x48]
jl 0x140048f12
test edi, edi
je 0x14004900b
lea rdx, str.uncompress
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400a60a0], rax
mov dword [rsp + 0x4c], r15d
test rax, rax
je 0x14004900b
mov r9d, dword [rsp + 0x48]
mov r8, r14
lea rdx, [rsp + 0x50]
mov rcx, rsi
call rax
mov dword [rsp + 0x4c], eax
test eax, eax
jne 0x14004900b
mov dword [rsp + 0x54], ebx
cmp dword [rsp + 0x50], ebx
jle 0x14004900b
mov rax, rsi
mov qword [rsp + 0x70], rax
test edi, edi
je 0x14004900b
mov al, byte [rax]
mov byte [rsp + 0x44], al
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x88]
mov r8d, 1
lea rdx, [rsp + 0x44]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, eax
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x54]
inc ecx
mov dword [rsp + 0x54], ecx
mov rax, qword [rsp + 0x70]
inc rax
mov qword [rsp + 0x70], rax
cmp ecx, dword [rsp + 0x50]
jl 0x140048fbd
lea rcx, [rsp + 0x68]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
jmp 0x14004901c
or r15, 0xffffffffffffffff
jmp 0x140049043
test r12, r12
je 0x140049052
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x140049071
test r13, r13
je 0x140049080
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x140049097
test r14, r14
je 0x1400490a5
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test rsi, rsi
je 0x1400490b3
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [rsp + 0x4c]
test edi, edi
cmove eax, r15d
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.14005d930
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret