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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdi, qword [rcx + 8]
xor ebx, ebx
mov r13, r9
mov r15d, r8d
mov r14, rdx
mov rsi, rcx
mov r12d, ebx
mov ebp, ebx
test rdi, rdi
jne 0x1800971ff
xor eax, eax
jmp 0x180097622
mov word [rcx + 0x3c], bx
mov qword [rcx + 0x40], rbx
nop word [rax + rax]
mov rcx, qword [rdi + 0x70]
cmp ebp, r15d
jae 0x1800972bb
mov rdx, qword [r14]
test rdx, rdx
je 0x1800972bb
mov eax, dword [rdi]
cmp dword [rdx + 8], eax
jne 0x1800972bb
test rcx, rcx
je 0x180097254
mov rax, qword [rdi + 0x78]
test rax, rax
je 0x180097250
xor edx, edx
mov rcx, rax
call fcn.180087180
mov rcx, qword [rdi + 0x70]
mov qword [rdi + 0x78], rcx
mov ecx, 0x98
call fcn.1801a1ce0
test rax, rax
je 0x180097270
mov rdx, qword [r14]
mov rcx, rax
call fcn.180086720
jmp 0x180097273
mov rax, rbx
mov qword [rdi + 0x70], rax
mov ecx, ebx
mov rax, qword [r14]
movups xmm0, xmmword [rax + 0x18]
movups xmmword [rdi + 0x10], xmm0
movups xmm1, xmmword [rax + 0x28]
movups xmmword [rdi + 0x20], xmm1
movups xmm0, xmmword [rax + 0x38]
movups xmmword [rdi + 0x30], xmm0
movups xmm1, xmmword [rax + 0x48]
movups xmmword [rdi + 0x40], xmm1
movups xmm0, xmmword [rax + 0x58]
movups xmmword [rdi + 0x50], xmm0
mov rax, qword [r14]
cmp dword [rax + 0x48], 0xffffffff
setne cl
inc ebp
mov dword [rdi + 0x60], ecx
add r14, 8
mov rcx, qword [rdi + 0x70]
mov rdx, qword [rdi + 0x80]
mov rax, rcx
test rdx, rdx
je 0x180097331
mov rcx, rdx
test rax, rax
je 0x1800972f4
mov r8, qword [rdi + 0x78]
test r8, r8
je 0x1800972f0
xor edx, edx
mov rcx, r8
call fcn.180087180
mov rax, qword [rdi + 0x70]
mov rcx, qword [rdi + 0x80]
mov qword [rdi + 0x78], rax
mov qword [rdi + 0x70], rbx
mov rax, rbx
mov dword [rdi + 0x60], 1
mov edx, 1
movups xmm0, xmmword [rcx + 0x18]
movups xmmword [rdi + 0x10], xmm0
movups xmm1, xmmword [rcx + 0x28]
movups xmmword [rdi + 0x20], xmm1
movups xmm0, xmmword [rcx + 0x38]
movups xmmword [rdi + 0x30], xmm0
movups xmm1, xmmword [rcx + 0x48]
movups xmmword [rdi + 0x40], xmm1
movups xmm0, xmmword [rcx + 0x58]
movups xmmword [rdi + 0x50], xmm0
jmp 0x180097334
mov edx, dword [rdi + 0x60]
test edx, edx
je 0x1800973f7
test rcx, rcx
je 0x1800973f2
mov rdx, qword [rdi + 0x68]
mov rax, 0xffffffffffffffff
cmp word [rdx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x180097350
mov edx, dword [rsi + 0x7c]
lea ebx, [rax*2 + 2]
call fcn.1800876c0
lea ecx, [rbx + rax]
mov eax, 0x1c
add ecx, r12d
mov r12d, 0x50
test dword [rsi + 0x7c], 0x8000000
cmovne r12d, eax
inc word [rsi + 0x3c]
add r12d, ecx
cmp word [rdi + 8], 2
jne 0x18009739d
mov rax, qword [rdi + 0x20]
add qword [rsi + 0x40], rax
xor ebx, ebx
mov rdi, qword [rdi + 0x88]
test rdi, rdi
je 0x1800973b4
cmp dword [rdi], 2
jne 0x180097210
mov r8, qword [rsi + 8]
nop dword [rax + rax]
mov rdx, qword [r8 + 0x78]
test rdx, rdx
je 0x180097415
mov rdx, qword [rdx + 0x78]
test rdx, rdx
je 0x180097415
mov ecx, dword [rdx + 8]
mov rax, qword [rdx + 0x38]
test ecx, ecx
je 0x18009740c
nop dword [rax]
test rax, rax
je 0x18009740c
cmp ecx, dword [rax + 8]
jb 0x18009740c
mov rax, qword [rax + 0x28]
inc ebx
jmp 0x1800973e0
mov dword [rdi + 0x60], ebx
jmp 0x18009739f
test rax, rax
je 0x180097406
xor edx, edx
mov rcx, rax
call fcn.180087180
mov qword [rdi + 0x70], rbx
jmp 0x18009739f
mov rdx, qword [rdx + 0x28]
test rdx, rdx
jne 0x1800973d2
mov r8, qword [r8 + 0x88]
test r8, r8
je 0x180097427
cmp dword [r8], 2
jne 0x1800973c0
mov edx, dword [rsi + 0x7c]
mov rcx, qword [rsi + 0x10]
call fcn.1800876c0
xor r14d, r14d
lea edx, [rbx*4 + 0x15]
add edx, ebx
mov qword [rsp + 0x40], r14
add eax, r12d
mov edi, r14d
test dword [rsi + 0x7c], 0x8000000
lea edx, [rax + rdx*4]
je 0x180097462
mov eax, dword [0x180270d48]
cmp edx, eax
jbe 0x18009749e
sub edx, eax
lea rcx, [rsp + 0x40]
mov r8d, edx
mov qword [rsp + 0x38], rcx
lea rax, [rsi + 0x78]
lea rcx, [rsp + 0x80]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rcx
lea r9, [rsi + 0x70]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180098670
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsi + 8]
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x1800974b6
xor edx, edx
call fcn.180087180
mov qword [rbx + 0x78], r14
mov rbx, qword [rbx + 0x88]
test rbx, rbx
je 0x1800974c7
cmp dword [rbx], 2
jne 0x1800974a2
mov ebx, dword [rsi + 0x7c]
mov edx, ebx
mov rcx, qword [rsi + 0x10]
call fcn.1800876c0
mov ebp, dword [rsi + 0x7c]
bt ebx, 0xf
mov ebx, 0x58
mov ecx, 0x54
cmovae ebx, ecx
add eax, r12d
add ebx, eax
test rdi, rdi
je 0x1800975b7
mov rcx, qword [rsi + 0x10]
mov edx, ebp
call fcn.1800876c0
and ebp, 0x8000
bts ebp, 0x10
shr ebp, 0xd
lea r9d, [rax + rbp]
mov rax, qword [rsi + 0x10]
mov rdx, qword [rax + 0x78]
test rdx, rdx
je 0x180097535
mov r8d, dword [rdi + 8]
add r8, qword [rdi]
cmp r8, qword [rdx]
jae 0x180097563
mov rdx, qword [rdx + 0x28]
test rdx, rdx
jne 0x180097527
lea ecx, [r9 + 0x14]
mov rax, qword [rdi]
lea ebx, [r12 + 0x4c]
add ebx, ecx
mov qword [rsi + 0x70], rax
test dword [rsi + 0x7c], 0x8000000
je 0x180097572
mov ecx, dword [0x180270d48]
cmp ebx, ecx
jbe 0x18009756d
mov eax, ebx
sub eax, ecx
mov dword [rsi + 0x78], eax
jmp 0x180097577
lea ecx, [r9 + 0x14]
cmove ecx, r9d
jmp 0x180097539
mov eax, dword [rsi + 0x78]
jmp 0x180097577
mov dword [rsi + 0x78], ebx
mov eax, ebx
cmp dword [rdi + 8], eax
jbe 0x18009759c
add qword [rdi], rax
mov r8d, 1
mov eax, dword [rsi + 0x78]
mov rdx, rdi
sub dword [rdi + 8], eax
mov rcx, rsi
call fcn.1800989e0
mov rax, qword [rsi + 0x70]
jmp 0x1800975f8
mov rcx, rdi
call fcn.180086d40
mov edx, 0x40
mov rcx, rdi
call fcn.1801a1d24
mov rax, qword [rsi + 0x70]
jmp 0x1800975f8
bt ebp, 0x1b
jae 0x1800975ed
cmp ebx, dword [0x180270d48]
jbe 0x1800975de
mov rax, qword [rsi + 0x48]
mov qword [rsi + 0x70], rax
mov eax, ebx
sub eax, dword [0x180270d48]
mov dword [rsi + 0x78], eax
mov rax, qword [rsi + 0x70]
jmp 0x1800975f8
mov qword [rsi + 0x70], r14
mov eax, ebx
mov dword [rsi + 0x78], ebx
mov rax, qword [rsi + 0x70]
jmp 0x1800975f8
mov rax, qword [rsi + 0x48]
mov qword [rsi + 0x70], rax
mov dword [rsi + 0x78], ebx
mov rcx, qword [rsp + 0xa0]
mov qword [r13], rax
mov edx, dword [rsi + 0x78]
mov dword [rcx], edx
mov rax, qword [rsi + 0x48]
lea rcx, [rax - 1]
cmp qword [r13], rcx
jbe 0x180097620
mov ecx, ebx
add rcx, rax
mov qword [rsi + 0x48], rcx
mov eax, ebx
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret