Function at 0x100021de8
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
xor r12d, r12d
mov r14, r8
mov rsi, rcx
mov r15d, r12d
mov r8, rdx
call fcn.100019360
mov rdi, rax
xor eax, eax
mov r13, r12
mov qword [rsp + 0x58], r12
mov dword [rsp + 0xf0], r12d
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x60], r12
cmp rcx, r12
je 0x1000221f3
cmp r8, r12
je 0x1000221f3
cmp r14, 0xffffffffffffffff
je 0x1000221f3
mov rbp, qword [rsp + 0x110]
cmp rbp, r12
je 0x1000221f3
cmp rdi, r12
je 0x100021e88
lea rdx, [rbp + 0x28]
lea r8, [rsp + 0x58]
mov rcx, rdi
call fcn.10001ff34
mov r13, qword [rsp + 0x58]
mov rbx, rax
jmp 0x100021e96
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, r12
cmp rbx, r12
je 0x100021ec9
mov r12d, 1
cmp r13, rdi
jne 0x100021eaa
add dword [rbx + 0x24], r12d
xor eax, eax
cmp dword [rsp + 0x120], eax
je 0x100021ec1
mov rdx, qword [rbp + 0x18]
mov rcx, rsi
call fcn.100019b38
mov eax, r12d
jmp 0x100022200
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rsi
call fcn.1000199ec
cmp eax, r12d
je 0x1000221fe
mov rax, qword [0x10005c4b0]
cmp r14, rax
jne 0x100021f18
cmp dword [0x10005d5f4], r12d
je 0x100021f18
mov rcx, qword [0x10005c4b8]
lea rdx, [rsp + 0x50]
call qword [0x10005d640]
jmp 0x100021f31
cmp r14, rax
mov rcx, r14
lea rdx, [rsp + 0x50]
cmove rcx, qword [0x10005c4b8]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
cmp eax, r12d
je 0x1000221fe
cmp dword [rsp + 0x118], 2
mov rax, qword [rdi + 0x210]
mov r12d, 1
mov qword [rbp + 0x10], rax
je 0x100021f79
lea r9, [rdi + 0x18]
lea r8, [rdi + 0x10]
mov edx, r12d
mov rcx, rbp
call fcn.100025b1c
xor r8d, r8d
mov rbx, rax
cmp rax, r8
je 0x1000221ee
jmp 0x100021f7c
xor r8d, r8d
mov rcx, qword [rsi + 0xe0]
xor eax, eax
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rax
mov rax, qword [rsi + 0xd8]
mov qword [rsp + 0x68], r8
cmp rax, r8
je 0x10002219f
cmp rcx, r8
je 0x10002219f
or dword [rdi + 0x1a8], 2
mov r13d, dword [rsp + 0x120]
mov qword [rsp + 0xa0], rax
mov eax, dword [rdi + 0x210]
mov qword [rsp + 0x80], rcx
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x78], eax
mov eax, dword [rdi + 0x214]
or dword [rsi + 0x2c], r12d
mov dword [rsp + 0x7c], eax
mov r15d, r12d
cmp rcx, r8
je 0x100022076
mov eax, dword [rsp + 0xf0]
mov r9, qword [rdi + 8]
mov dword [rsp + 0x48], r13d
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x68]
lea r8, [rsp + 0x88]
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.1000253f4
mov r15d, eax
xor eax, eax
cmp r15d, eax
jne 0x100022076
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor r8d, r8d
jmp 0x10002219f
mov rcx, qword [rdi + 0x1c8]
lea rdx, [rbx + 0x28]
mov r8, rbx
call fcn.1000252c0
neg rax
sbb ecx, ecx
xor r8d, r8d
and ecx, r15d
mov r15d, ecx
cmp ecx, r8d
je 0x10002219f
mov rdx, qword [rbp + 0x18]
mov rax, qword [rsp + 0x50]
cmp rdx, rax
jle 0x1000220c6
cmp r13d, r8d
je 0x1000220c6
sub rdx, rax
mov rcx, rsi
call fcn.100019b38
mov rax, qword [rsp + 0x50]
xor r8d, r8d
add qword [rdi + 0x210], rax
cmp dword [rsp + 0x118], 2
mov rbx, rbp
je 0x10002219a
test byte [rsi + 0x24], 2
je 0x10002219a
or qword [rsp + 0xf0], 0xffffffffffffffff
mov rcx, rsi
mov r15d, r8d
call fcn.100019360
mov rcx, rax
call fcn.100026324
xor r8d, r8d
mov r13, rax
cmp rax, r8
je 0x10002219f
cmp word [rax], r8w
je 0x10002217a
mov dword [rsp + 0x28], r8d
lea rax, [rsp + 0xf0]
lea rdx, [rbp + 0x28]
xor r9d, r9d
mov r8, r13
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.100020024
test eax, eax
je 0x10002217a
mov r14, qword [rsp + 0xf0]
cmp r14, 0xffffffffffffffff
je 0x10002217a
mov rdx, qword [rsp + 0x108]
mov r8, r14
mov rcx, rsi
call fcn.1000173bc
test eax, eax
je 0x10002216b
mov r15d, r12d
jmp 0x100022171
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r13
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r8d, r8d
cmp r15d, r8d
jne 0x1000221ee
cmp rbx, r8
je 0x1000221ee
cmp rbp, rbx
je 0x1000221ee
lea rdx, [rdi + 0x10]
mov rcx, r8
cmp qword [rdx], r8
je 0x1000221e3
mov rax, qword [rdx]
cmp rax, rbx
je 0x1000221c8
mov rcx, rax
mov rdx, rax
cmp qword [rax], r8
jne 0x1000221b5
mov rax, qword [rdx]
cmp rax, r8
je 0x1000221e3
cmp rax, qword [rdi + 0x18]
jne 0x1000221da
mov qword [rdi + 0x18], rcx
mov rax, qword [rdx]
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rcx, rbx
mov qword [rbx], r8
call fcn.100025ba4
mov eax, r15d
jmp 0x100022200
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbx, qword [rsp + 0xf8]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret