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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rax - 0x60], 0xfffffffffffffffe
mov rcx, qword [rdx]
xor ebx, ebx
mov qword [rax - 0x78], rbx
mov dword [rax - 0x80], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
mov qword [rsp + 0x40], rax
or rax, 0xffffffffffffffff
cmp r14, rax
jne 0x140004c40
xor al, al
jmp 0x140004efc
mov rsi, rbx
mov qword [rsp + 0x50], rbx
mov rdi, rbx
mov qword [rsp + 0x58], rbx
mov r12, rbx
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], ebx
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r13d, eax
lea ecx, [rax + 2]
movsxd rcx, ecx
call fcn.1400065b4
mov r15, rax
mov rcx, r14
test rax, rax
jne 0x140004c8e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor al, al
jmp 0x140004efc
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0xb0]
mov r8d, r13d
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, r14
test eax, eax
jne 0x140004cc4
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r15
call fcn.14000666c
nop
xor al, al
jmp 0x140004efc
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [rsp + 0xb0]
mov dword [rsp + 0xb8], ecx
test ecx, ecx
je 0x140004dbb
mov byte [rcx + r15], bl
mov r14d, ebx
cmp r14d, ecx
jae 0x140004dbb
mov eax, r14d
mov r13b, byte [rax + r15]
test r13b, r13b
je 0x140004db3
cmp r13b, 0x3c
jne 0x140004d59
mov rax, rdi
mov qword [rsp + 0xc8], rax
cmp rdi, r12
jb 0x140004d49
lea rdx, [rdi + 1]
lea rcx, [rsp + 0x50]
call fcn.140005164
test al, al
jne 0x140004d32
mov ecx, 0x8007000e
call fcn.14000401c
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsp + 0xc8]
add rax, rsi
je 0x140004d51
mov byte [rax], 0x20
inc rdi
mov qword [rsp + 0x58], rdi
mov rax, rdi
mov qword [rsp + 0xc8], rax
cmp rdi, r12
jb 0x140004d9c
lea rdx, [rdi + 1]
lea rcx, [rsp + 0x50]
call fcn.140005164
test al, al
jne 0x140004d85
mov ecx, 0x8007000e
call fcn.14000401c
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsp + 0xc8]
add rax, rsi
je 0x140004da4
mov byte [rax], r13b
inc rdi
mov qword [rsp + 0x58], rdi
mov ecx, dword [rsp + 0xb8]
inc r14d
jmp 0x140004ce7
mov rcx, r15
call fcn.14000666c
mov r13d, dword [rsp + 0x58]
test r13d, r13d
jle 0x140004ed1
lea eax, [r13 + 1]
movsxd rcx, eax
call fcn.1400055d0
mov r15, rax
mov r14d, ebx
cmp r14d, r13d
jge 0x140004e06
movsxd rcx, r14d
cmp rcx, rdi
jb 0x140004dfa
mov ecx, 0x80070057
call fcn.14000401c
mov al, byte [rsi + rcx]
mov byte [rcx + r15], al
inc r14d
jmp 0x140004de3
movsxd rax, r14d
mov byte [rax + r15], bl
test rsi, rsi
je 0x140004e1f
mov rcx, rsi
call fcn.14000666c
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
lea esi, [r14 + r14]
movsxd rcx, esi
mov eax, 2
mul rcx
mov r12, 0xffffffffffffffff
cmovo rax, r12
mov rcx, rax
call fcn.1400055d0
mov rdi, rax
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, r15
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rcx, eax
mov word [rdi + rcx*2], bx
mov rdx, rdi
lea rcx, [rsp + 0xb8]
call fcn.140001f20
nop
mov rdx, rax
mov r14, qword [rsp + 0xc0]
mov rcx, r14
call fcn.140002078
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140004eba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, rdi
call fcn.1400066ac
mov rcx, r15
call fcn.1400066ac
mov rsi, qword [rsp + 0x50]
jmp 0x140004ed9
mov r14, qword [rsp + 0xc0]
test rsi, rsi
je 0x140004ee7
mov rcx, rsi
call fcn.14000666c
nop
jmp 0x140004ef3
mov rax, qword [r14]
cmp dword [rax - 0x10], ebx
setne al
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret