Function at 0x180007ab0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov qword [rsp + 0x70], rdx
mov rdi, rcx
mov rbx, qword [rcx]
mov eax, dword [rbx + 0x24]
cmp dword [rbx + 0x40], 2
jle 0x180007e70
cmp eax, 1
lea rax, [0x1800aaaf0]
lea rcx, [0x180007840]
cmove rcx, rax
mov qword [rsp + 0x48], rcx
cmp dword [rbx + 0x5c], 1
jne 0x180007e86
mov r14, qword [r8]
mov r9, qword [rdi + 0x18]
mov rcx, qword [rbx + 0x88]
mov eax, dword [rbx + 0x20]
mov r11d, dword [rbx + 0x44]
test eax, eax
je 0x180007b37
lea edx, [rax - 8]
mov r15, 0xfffffffffffffffe
cmp edx, 0xfffffffc
jb 0x180007b3d
add eax, 0xfffffffc
lea rdx, [0x1800b9250]
mov r15, qword [rdx + rax*8]
jmp 0x180007b3d
mov r15d, 0x10000
movsxd rax, dword [rbx + 0x3c]
lea rsi, [rax*4 + 4]
lea r12, [r15 - 1]
cmp r12, rcx
mov r10, rcx
cmovb r10, r12
movsxd r13, dword [rbx + 0x28]
add r10, r14
xor ebp, ebp
mov rax, r10
xor edx, edx
div r15
mov edx, eax
imul rdx, r15
xor r15d, r15d
test r14, r14
sete r15b
and r10, r12
or r11d, r15d
cmove r10, rbp
lea rdx, [rdx + r13*4]
cmp r10, 1
sbb eax, 0xffffffff
imul rax, rsi
add r10, rdx
add rax, r10
add rax, 4
cmp rax, r9
ja 0x180007e8f
mov r12, qword [r8 + 8]
mov al, byte [rdi + 0xd]
mov byte [rsp + 0x58], al
mov r15, qword [rdi + 0x28]
mov rdx, qword [rbx + 0x68]
cmp dword [rbx + 0xd4], 0
mov rbp, r15
jne 0x180007ea7
mov qword [rsp + 0x80], r15
lea r15, [r12 + r14]
xor eax, eax
test rcx, rcx
je 0x180007cfd
mov rsi, rdx
mov r13, rdx
sub r13, rcx
add rcx, qword [rbx + 0x80]
mov rdx, r12
cmp r13, r14
jbe 0x180007d05
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x88]
add rcx, r14
xor eax, eax
mov r13, r15
mov rdx, rsi
mov qword [rbx + 0x88], rcx
mov r8, r15
sub r8, r13
cmp r8, rdx
jae 0x180007ed7
cmp dword [rbx + 0x44], 0
je 0x180007c39
cmp r13, r15
jb 0x180007f45
cmp eax, 2
jne 0x180007c48
cmp dword [rbx + 0x24], 0
je 0x180007f8e
cmp dword [rbx + 0x44], 0
jne 0x180007c69
add rdx, qword [rbx + 0x80]
mov rsi, qword [rbx + 0x78]
mov rax, qword [rbx + 0x70]
add rax, rsi
cmp rdx, rax
ja 0x180007db7
cmp r13, r15
jae 0x180007c8a
sub r15, r13
mov rcx, qword [rbx + 0x80]
mov rdx, r13
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbx + 0x88], r15
cmp dword [rbx + 0x28], 1
jne 0x180007ca2
lea rcx, [rbx + 0x98]
mov rdx, r12
mov r8, r14
call fcn.1800440e0
add qword [rbx + 0x90], r14
sub rbp, qword [rsp + 0x80]
cmp rbp, 0xffffffffffffffeb
jae 0x180007e96
mov rax, qword [rdi + 0x28]
test rbp, rbp
je 0x180007ccd
test rax, rax
je 0x180007fab
test rax, rax
mov ecx, 1
cmovne rcx, rax
mov rax, qword [rsp + 0x70]
mov byte [rax + 0x10], 0
mov qword [rax], rbp
mov qword [rax + 8], rcx
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13, r12
jmp 0x180007c1b
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rbx + 0x3c]
mov qword [rsp + 0x50], rax
mov eax, dword [rbx + 0x40]
mov r10, qword [rbx + 0x60]
mov rcx, qword [rbx + 0xc8]
mov rdx, qword [rbx + 0x80]
lea r11d, [rsi - 1]
mov r9, rsi
mov qword [rsp + 0x78], rsi
lea r8, [rbp + 4]
mov qword [rsp + 0x30], r10
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r11d
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], r8
mov rax, qword [rsp + 0x48]
call qword [0x1800d2010]
mov rcx, qword [rsp + 0x78]
test eax, eax
je 0x180007fc6
mov edx, eax
cmp rcx, rdx
jbe 0x180007fc6
mov r8, rcx
mov dword [rbp], edx
mov rax, qword [rsp + 0x50]
test rax, rax
jne 0x180007ffd
add r13, r12
lea rax, [rdx + rax*4]
add rbp, rax
add rbp, 4
mov eax, 1
cmp dword [rbx + 0x24], 0
jne 0x180008026
mov rdx, r8
add qword [rbx + 0x80], r8
xor ecx, ecx
jmp 0x180007c14
cmp dword [rbx + 0x40], 2
mov r8, qword [rbx + 0xc8]
mov qword [rsp + 0x48], r8
jle 0x180008030
mov rdx, qword [r8 + 0x40000]
mov ecx, dword [r8 + 0x40008]
mov eax, edx
sub eax, ecx
mov r10d, 0x10000
cmp eax, r10d
cmovl r10d, eax
test eax, eax
jle 0x180007e1b
mov r8d, r10d
sub rdx, r8
mov rcx, rsi
mov dword [rsp + 0x58], r10d
call sub.VCRUNTIME140.dll_memmove
mov r10d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x48]
mov eax, dword [r8 + 0x40000]
sub eax, dword [r8 + 0x40008]
movsxd r9, r10d
lea rcx, [rsi + r9]
mov qword [r8 + 0x40000], rcx
mov qword [r8 + 0x40008], rsi
mov ecx, dword [r8 + 0x40018]
mov edx, dword [r8 + 0x40020]
sub ecx, r10d
add ecx, eax
mov dword [r8 + 0x40018], ecx
mov dword [r8 + 0x4001c], ecx
mov qword [r8 + 0x40010], rsi
cmp edx, ecx
jb 0x18000808c
add r9, qword [rbx + 0x78]
mov qword [rbx + 0x80], r9
jmp 0x180007c69
cmp eax, 1
lea rax, [0x1800aaa10]
lea rcx, [0x1800aaab0]
jmp 0x180007aec
mov rbp, 0xffffffffffffffec
jmp 0x180007e96
mov rbp, 0xfffffffffffffff5
mov rax, qword [rsp + 0x70]
mov byte [rax + 0x10], 1
mov qword [rax], rbp
jmp 0x180007ce9
mov rcx, rbx
mov rsi, rdx
mov rdx, r15
mov r8, r9
call fcn.18000ade0
mov rdx, rsi
mov rbp, rax
add rbp, r15
mov dword [rbx + 0xd4], 0
mov rcx, qword [rbx + 0x88]
jmp 0x180007bc7
lea rax, [rdx + r13]
mov qword [rsp + 0x50], rax
mov rax, qword [rbx + 0x60]
mov ecx, dword [rbx + 0x3c]
mov rsi, rdx
mov edx, dword [rbx + 0x40]
mov r8, qword [rbx + 0xc8]
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], r8
mov rcx, rbp
mov rdx, r13
mov r8, rsi
mov r9, qword [rsp + 0x48]
call fcn.1800aab80
mov rdx, rsi
add rbp, rax
add r13, rsi
mov r8, r15
mov rax, qword [rsp + 0x50]
sub r8, rax
add rax, rdx
mov qword [rsp + 0x50], rax
mov eax, 2
cmp r8, rdx
jb 0x180007c2a
jmp 0x180007ee0
mov rax, qword [rbx + 0x60]
mov ecx, dword [rbx + 0x3c]
mov rsi, rdx
mov edx, dword [rbx + 0x40]
mov r9, qword [rbx + 0xc8]
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], r9
mov rcx, rbp
mov rdx, r13
mov r9, qword [rsp + 0x48]
call fcn.1800aab80
mov rdx, rsi
add rbp, rax
mov eax, 2
mov r13, r15
jmp 0x180007c39
mov rsi, rdx
cmp byte [rsp + 0x58], 0
je 0x180007fb6
mov rax, qword [rbx + 0x78]
mov qword [rbx + 0x80], rax
mov rdx, rsi
jmp 0x180007c48
int3
mov rcx, rbx
call fcn.1800aac50
cdqe
add rax, qword [rbx + 0x78]
jmp 0x180007f9c
mov byte [rbp], cl
mov byte [rbp + 1], ch
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 2], al
mov eax, ecx
shr eax, 0x18
or al, 0x80
mov byte [rbp + 3], al
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rax, rsi
mov r8, rsi
mov edx, eax
jmp 0x180007d7b
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x60], rdx
call fcn.1800b2a30
mov rdx, qword [rsp + 0x60]
mov r8, rsi
mov rcx, qword [rsp + 0x68]
mov dword [rcx + rdx], eax
mov rax, qword [rsp + 0x50]
jmp 0x180007d89
xor ecx, ecx
mov rdx, r8
jmp 0x180007c14
mov edx, dword [r8 + 0x4018]
mov ecx, 0x10000
cmp edx, ecx
cmovb ecx, edx
mov eax, ecx
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x50], ecx
test ecx, ecx
je 0x18000806c
mov rax, qword [rsp + 0x48]
add rdx, qword [rax + 0x4000]
mov r8, qword [rsp + 0x58]
sub rdx, r8
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4000], rsi
mov ecx, dword [rsp + 0x50]
mov dword [rax + 0x4018], ecx
mov r9, qword [rsp + 0x58]
jmp 0x180007e60
mov dword [r8 + 0x40020], ecx
jmp 0x180007e60