Function at 0x14001c840
Capabilities:
Get file size

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x40
xor r14d, r14d
mov rbp, rcx
mov ebx, r14d
mov edi, r14d
mov qword [rax + 8], r14
test rcx, rcx
jne 0x14001c87b
lea ecx, [rbp + 0x57]
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14001cbf8
xor r9d, r9d
mov qword [rsp + 0x30], r14
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14001c8fc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c8cd
mov r8, qword [0x140042e38]
lea rdx, [0x14000ad10]
mov ecx, eax
call r9
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14001cb5f
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14001cb5f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14001cb5f
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x14001c95c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c933
lea rdx, [0x14000ad80]
mov r8, qword [0x140042e38]
mov ecx, eax
call r9
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14001cb5a
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14001cb5a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
jmp 0x14001cb54
cmp dword [rsp + 0x64], r14d
je 0x14001c99b
mov rax, qword [0x140042e40]
mov ebp, 0x18
test rax, rax
je 0x14001c986
mov r8, qword [0x140042e38]
lea rdx, [0x14000ade0]
mov ecx, ebp
call rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14001cb5a
mov ecx, ebp
jmp 0x14001cb54
mov edx, 0x30
mov rcx, rsi
call fcn.140025174
mov rdi, rax
test rax, rax
jne 0x14001c9d2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c933
lea rdx, [0x14000ae30]
jmp 0x14001c927
mov edx, dword [rsp + 0x60]
mov rcx, rax
call fcn.14001c0b8
test eax, eax
jne 0x14001ca04
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c933
lea rdx, [0x14000aea0]
jmp 0x14001c927
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, 0x58
lea r15d, [r8 - 0x50]
mov rcx, rax
mov edx, r15d
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x14001cb28
mov edx, r15d
mov rcx, rsi
mov dword [rax], 6
mov qword [rax + 0x18], rdi
call fcn.140025174
mov qword [rbx + 0x20], rax
mov eax, dword [rdi + 0x10]
test eax, eax
je 0x14001ca85
lea edx, [rax + rax*8]
mov rcx, rsi
shl edx, 3
call fcn.140025174
mov qword [rbx + 0x28], rax
test rax, rax
jne 0x14001ca89
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c933
lea rdx, [0x14000af40]
jmp 0x14001c927
mov qword [rbx + 0x28], r14
mov edx, dword [rdi + 0x1c]
test edx, edx
je 0x14001cac6
shl edx, 4
mov rcx, rsi
call fcn.140025174
mov qword [rbx + 0x30], rax
test rax, rax
jne 0x14001caca
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c933
lea rdx, [0x14000afb0]
jmp 0x14001c927
mov qword [rbx + 0x30], r14
mov edx, dword [rdi + 0x14]
test edx, edx
je 0x14001cb06
add edx, edx
mov rcx, rsi
call fcn.140025174
mov qword [rbx + 0x38], rax
test rax, rax
jne 0x14001cb0a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, qword [0x140042e40]
test r9, r9
je 0x14001c933
lea rdx, [0x14000b030]
jmp 0x14001c927
mov qword [rbx + 0x38], r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbp
call fcn.1400157e8
mov qword [rbx + 0x40], rax
test rax, rax
jne 0x14001cbfc
mov rax, qword [0x140042e40]
test rax, rax
je 0x14001cb47
mov r8, qword [0x140042e38]
lea rdx, [0x14000af08]
mov ecx, r15d
call rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14001cb5a
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rsi, rsi
je 0x14001cb68
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbx, rbx
je 0x14001cbdf
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x14001cb91
cmp rdi, rsi
cmove rdi, r14
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, qword [rbx + 0x28]
test rsi, rsi
je 0x14001cbae
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, qword [rbx + 0x38]
test rsi, rsi
je 0x14001cbcb
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test rdi, rdi
je 0x14001cbf8
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
jmp 0x14001cc15
lea r8, [rbx + 0x48]
lea rdx, [rbx + 0x50]
mov rcx, rax
mov qword [r8], r14
mov qword [rdx], r14
call fcn.14001573c
mov rax, rbx
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret