Function at 0x18000ab70
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, 0x138
movaps xmmword [rsp + 0x120], xmm6
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], rcx
lea rax, [rdx + 0x28]
mov qword [rsp + 0x40], rax
mov rdi, qword [rdx + 0x38]
cmp dword [rdx], 1
mov qword [rsp + 0x20], rdx
mov r12, qword [rdx + 0x20]
mov qword [rsp + 0x28], r8
jne 0x18000ac06
test rdi, rdi
js 0x18000b292
cvtsi2ss xmm0, rdi
test r12, r12
jns 0x18000b2b2
mov rax, r12
shr rax, 1
mov ecx, r12d
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
divss xmm0, xmm1
ucomiss xmm0, dword [0x18018b830]
jb 0x18000b2c8
mov rcx, qword [rsp + 0x20]
mov qword [rcx], 0
add r12, r12
jmp 0x18000ac29
mov rax, r12
shr rax, 2
mov rcx, r12
sub rcx, rax
cmp rdi, rcx
jne 0x18000ac36
test rdi, rdi
je 0x18000b4e3
add r12, r12
mov rcx, qword [rsp + 0x20]
mov rdx, r12
call fcn.18000a840
mov r8, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
mov rcx, qword [rsi]
movups xmm0, xmmword [rsi + 8]
movaps xmmword [rsp + 0xe0], xmm0
lea rdx, [rsp + 0xe0]
mov qword [rsp + 0xa8], rcx
call fcn.18000a580
mov r9, qword [rsp + 0x28]
mov ebp, eax
movzx edi, word [rsi + 0x58]
mov r15d, edi
and r15d, ebp
mov r14, qword [rsi + 0x18]
mov rbx, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x38]
mov r11, qword [rsi + 0x28]
xor r12d, r12d
xor esi, esi
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], r11
jmp 0x18000aca6
movzx eax, byte [rax + 8]
cmp al, byte [r9 + 8]
je 0x18000ad5b
nop
inc rsi
inc r15
cmp r15, rbx
cmovae r15, r12
test rbx, rbx
je 0x18000b0b0
movzx eax, word [r14 + r15*4]
cmp rax, 0xffff
je 0x18000b0b2
movzx ecx, word [r14 + r15*4 + 2]
mov r8d, edi
and r8d, ecx
mov r13d, r15d
sub r13d, r8d
and r13d, edi
cmp r13, rsi
jb 0x18000b173
cmp cx, bp
jne 0x18000aca0
cmp rdx, rax
jbe 0x18000b718
imul r10, rax, 0x68
mov rcx, qword [r11 + r10 + 0x40]
test rcx, rcx
setne al
cmp qword [r9], 0
sete r8b
cmp al, r8b
je 0x18000aca0
lea rax, [r11 + r10]
add rax, 0x40
test rcx, rcx
je 0x18000ac91
mov r8, qword [rax + 0x10]
cmp r8, qword [r9 + 0x10]
jne 0x18000aca0
mov rdx, qword [r9 + 8]
mov rcx, qword [rax + 8]
mov r12, r10
call fcn.1801718f0
mov r10, r12
xor r12d, r12d
mov r11, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
test eax, eax
jne 0x18000aca0
cmp qword [r11 + r10], 0
je 0x18000b65e
mov qword [rsp + 0x40], r10
lea rax, [r11 + r10]
mov rax, qword [rax + 8]
mov r12, qword [rsp + 0x20]
mov rbp, qword [r12 + 0x50]
cmp rbp, rax
jbe 0x18000b718
mov r15, qword [r12 + 0x40]
lea rdi, [rsp + 0x98]
lea rcx, [rbp*8]
add rcx, rbp
lea rbx, [r15 + rcx*8]
add rbx, 0xffffffffffffffb8
nop word cs:[rax + rax]
lea r9, [rax + rax*8]
mov rcx, qword [r15 + r9*8 + 8]
mov r8, qword [r15 + r9*8 + 0x10]
mov r10, qword [r15 + r9*8 + 0x18]
cmp qword [r15 + r9*8], 0
je 0x18000ae10
test r8, r8
je 0x18000ae50
cmp rcx, rbp
jae 0x18000b718
lea r8, [rcx + rcx*8]
mov qword [r15 + r8*8 + 0x10], 1
mov qword [r15 + r8*8 + 0x18], r10
cmp r10, rbp
jae 0x18000b718
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 1
jmp 0x18000ae49
test r8, r8
je 0x18000ae8c
cmp rcx, rdx
jae 0x18000b718
imul r8, rcx, 0x68
cmp qword [r11 + r8], 0
je 0x18000b718
add r8, r11
mov qword [r8 + 8], r10
cmp r10, rbp
jae 0x18000b718
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 0
mov qword [r15 + rdx*8 + 8], rcx
jmp 0x18000aeb0
cmp r10, rdx
jae 0x18000b718
imul r8, r10, 0x68
cmp qword [r11 + r8], 0
je 0x18000b718
add r8, r11
mov qword [r8 + 0x10], rcx
cmp rcx, rbp
jae 0x18000b718
lea rcx, [rcx + rcx*8]
mov qword [r15 + rcx*8 + 0x10], 0
mov qword [r15 + rcx*8 + 0x18], r10
jmp 0x18000aeb0
cmp rcx, rdx
jae 0x18000b718
imul rcx, rcx, 0x68
mov qword [r11 + rcx], 0
nop word cs:[rax + rax]
lea r10, [r15 + r9*8]
mov rdx, qword [r10]
mov r8, qword [r10 + 8]
mov rcx, qword [r10 + 0x10]
mov r14, qword [r10 + 0x18]
mov r11, qword [r10 + 0x40]
mov qword [rsp + 0xd0], r11
movups xmm0, xmmword [r10 + 0x30]
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [r10 + 0x20]
movaps xmmword [rsp + 0xb0], xmm0
dec rbp
mov r11, qword [rbx + 0x40]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmm3, xmmword [rbx + 0x30]
movups xmmword [r10], xmm0
movups xmmword [r10 + 0x10], xmm1
movups xmmword [r10 + 0x20], xmm2
movups xmmword [r10 + 0x30], xmm3
mov qword [r10 + 0x40], r11
mov qword [r12 + 0x50], rbp
cmp rbp, rax
je 0x18000aff2
jbe 0x18000b718
mov r12, rdi
lea r9, [r15 + r9*8]
add r9, 0x10
mov r11, qword [r9]
mov r9, qword [r9 + 8]
mov rdi, qword [r10 + 8]
cmp qword [r10], 0
je 0x18000af93
cmp rdi, rbp
jae 0x18000b718
lea r10, [rdi + rdi*8]
mov qword [r15 + r10*8 + 0x10], 1
lea r10, [r15 + r10*8]
add r10, 0x18
mov qword [r10], rax
test r11, r11
mov rdi, r12
je 0x18000afc4
cmp r9, rbp
mov r12, qword [rsp + 0x20]
jae 0x18000b718
lea r9, [r9 + r9*8]
mov qword [r15 + r9*8], 1
lea r9, [r15 + r9*8]
add r9, 8
jmp 0x18000afef
cmp rdi, qword [rsp + 0x30]
jae 0x18000b718
imul r10, rdi, 0x68
mov rdi, qword [rsp + 0x38]
cmp qword [rdi + r10], 0
je 0x18000b718
add r10, rdi
add r10, 8
mov qword [r10], rax
test r11, r11
mov rdi, r12
jne 0x18000af6f
cmp r9, qword [rsp + 0x30]
mov r12, qword [rsp + 0x20]
jae 0x18000b718
imul r9, r9, 0x68
mov r10, qword [rsp + 0x38]
cmp qword [r10 + r9], 0
je 0x18000b718
add r9, r10
add r9, 0x10
mov qword [r9], rax
mov r9, rcx
xor r9, 1
mov r10, rbp
xor r10, r14
or r10, r9
mov r9d, 1
cmove rcx, r9
cmove r14, rax
mov r9, rdx
xor r9, 1
mov r10, rbp
xor r10, r8
or r10, r9
cmove r8, rax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], r14
mov rax, qword [rsp + 0xd0]
lea rdx, [rsp + 0x80]
mov qword [rdx + 0x20], rax
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
test rcx, rcx
je 0x18000b631
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
mov rcx, rdi
call qword [rax + 0x10]
add rbx, 0xffffffffffffffb8
mov rax, r14
cmp rbp, r14
mov rdx, qword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
ja 0x18000adb0
jmp 0x18000b718
jmp 0x18000b0b0
cmp rdx, 0x7fff
ja 0x18000b718
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov rax, rdx
mov rsi, qword [rsp + 0x20]
cmp rdx, qword [rsi + 0x30]
jne 0x18000b0fb
mov rcx, qword [rsp + 0x40]
call fcn.18003f610
mov rdx, qword [rsp + 0x30]
mov rax, qword [rsi + 0x38]
mov rbx, qword [rsi + 0x20]
mov r11, qword [rsi + 0x28]
imul rcx, rax, 0x68
mov qword [r11 + rcx], 0
mov r8, qword [rsp + 0x50]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r11 + rcx + 0x18], xmm0
movups xmmword [r11 + rcx + 0x28], xmm1
mov r8, qword [r8 + 0x20]
mov qword [r11 + rcx + 0x38], r8
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [r11 + rcx + 0x40], xmm0
movups xmmword [r11 + rcx + 0x50], xmm1
mov word [r11 + rcx + 0x60], bp
inc rax
mov qword [rsi + 0x38], rax
cmp r15, rbx
jae 0x18000b718
mov rax, qword [rsi + 0x18]
mov word [rax + r15*4], dx
mov word [rax + r15*4 + 2], bp
mov rax, qword [rsp + 0x58]
mov byte [rax + 0x20], 2
jmp 0x18000b6fc
cmp rsi, 0x200
setae dil
cmp dword [rsp + 0xa8], 2
setne cl
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
cmp rdx, 0x7fff
ja 0x18000b718
mov rax, rdx
mov r12, qword [rsp + 0x20]
cmp rdx, qword [r12 + 0x30]
jne 0x18000b1e4
mov ebx, ecx
mov rcx, qword [rsp + 0x40]
call fcn.18003f610
mov ecx, ebx
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x28]
mov rax, qword [r12 + 0x38]
mov r11, qword [r12 + 0x28]
mov r14, qword [r12 + 0x18]
mov rbx, qword [r12 + 0x20]
and dil, cl
imul rcx, rax, 0x68
mov qword [r11 + rcx], 0
mov r8, qword [rsp + 0x50]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r11 + rcx + 0x18], xmm0
movups xmmword [r11 + rcx + 0x28], xmm1
mov r8, qword [r8 + 0x20]
mov qword [r11 + rcx + 0x38], r8
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [r11 + rcx + 0x40], xmm0
movups xmmword [r11 + rcx + 0x50], xmm1
mov word [r11 + rcx + 0x60], bp
inc rax
mov qword [r12 + 0x38], rax
xor ecx, ecx
xor eax, eax
cmp r15, rbx
cmovae r15, rcx
test rbx, rbx
je 0x18000b290
nop word [rax + rax]
movzx r10d, word [r14 + r15*4]
cmp r10w, 0xffff
je 0x18000b4b2
inc rax
movzx r8d, word [r14 + r15*4 + 2]
mov word [r14 + r15*4], dx
mov word [r14 + r15*4 + 2], bp
inc r15
mov ebp, r8d
mov edx, r10d
cmp r15, rbx
cmovae r15, rcx
test rbx, rbx
jne 0x18000b250
nop dword [rax]
jmp 0x18000b290
mov rax, rdi
shr rax, 1
mov ecx, edi
and ecx, 1
or rcx, rax
cvtsi2ss xmm0, rcx
addss xmm0, xmm0
test r12, r12
js 0x18000abcc
cvtsi2ss xmm1, r12
divss xmm0, xmm1
ucomiss xmm0, dword [0x18018b830]
jae 0x18000abf5
mov eax, dword [0x1802199d0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa8], 0
jne 0x18000b2ea
call fcn.1800074f0
mov rdx, qword [rsp + 0x20]
mov qword [rdx], 2
mov eax, dword [0x1802199d0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movups xmm0, xmmword [rax + 0xb0]
inc qword [rax + 0xb0]
movups xmmword [rdx + 8], xmm0
mov rsi, qword [rdx + 0x18]
test r12, r12
mov r8, qword [rsp + 0x28]
je 0x18000b38f
lea rax, [r12 - 1]
movabs rcx, 0x3fffffffffffffff
and rcx, rax
mov rax, rsi
cmp rcx, 7
jb 0x18000b37c
inc rcx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
lea rax, [rdx*4]
xor r9d, r9d
movaps xmm0, xmmword [0x18018b820]
movups xmmword [rsi + r9*4], xmm0
movups xmmword [rsi + r9*4 + 0x10], xmm0
add r9, 8
cmp rdx, r9
jne 0x18000b360
cmp rcx, rdx
je 0x18000b38f
add rax, rsi
lea rcx, [rsi + r12*4]
mov dword [rax], 0xffff
add rax, 4
cmp rax, rcx
jne 0x18000b380
test rdi, rdi
je 0x18000ac36
mov rax, qword [rsp + 0x40]
mov r13, qword [rax]
imul rax, rdi, 0x68
add rax, r13
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x20]
movzx r14d, word [rax + 0x58]
movups xmm6, xmmword [rax + 8]
xor r15d, r15d
lea rdx, [rsp + 0xf0]
xor ebp, ebp
mov rbx, r13
add r13, 0x68
lea rax, [rbp + 1]
mov qword [rsp + 0x30], rax
lea r8, [rbx + 0x40]
movaps xmmword [rsp + 0xf0], xmm6
mov ecx, 2
mov rdi, rdx
call fcn.18000a580
mov ecx, r14d
and ecx, eax
mov word [rbx + 0x60], ax
xor edx, edx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
je 0x18000b4b0
nop dword [rax + rax]
cmp word [rsi + rcx*4], 0xffff
je 0x18000b442
movzx r8d, word [rsi + rcx*4 + 2]
and r8d, r14d
mov r9d, ecx
sub r9d, r8d
and r9d, r14d
cmp r9, rdx
jb 0x18000b450
inc rdx
inc rcx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
jne 0x18000b410
jmp 0x18000b4b0
mov word [rsi + rcx*4], bp
mov r8, qword [rsp + 0x28]
mov rdx, rdi
jmp 0x18000b491
mov r8, qword [rsp + 0x28]
mov rdx, rdi
nop dword [rax + rax]
cmp rcx, r12
cmovae rcx, r15
movzx r10d, word [rsi + rcx*4]
cmp r10w, 0xffff
je 0x18000b48d
movzx r9d, word [rsi + rcx*4 + 2]
mov word [rsi + rcx*4], bp
mov word [rsi + rcx*4 + 2], ax
inc rcx
mov eax, r9d
mov ebp, r10d
jmp 0x18000b460
mov word [rsi + rcx*4], bp
mov rbp, qword [rsp + 0x30]
mov word [rsi + rcx*4 + 2], ax
cmp r13, qword [rsp + 0x38]
jne 0x18000b3c7
jmp 0x18000ac36
jmp 0x18000b4b0
mov word [r14 + r15*4], dx
mov word [r14 + r15*4 + 2], bp
cmp rax, 0x7f
seta al
or dil, al
cmp dil, 1
jne 0x18000b4dc
cmp qword [r12], 0
jne 0x18000b4dc
mov qword [r12], 1
mov al, 2
jmp 0x18000b6b3
mov rax, qword [rsp + 0x20]
mov word [rax + 0x58], 7
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x18000b513
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18000b71c
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x20
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000b71c
mov r13, rax
movaps xmm0, xmmword [0x18018b820]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r12, r12
mov rsi, qword [rsp + 0x20]
je 0x18000b558
mov r8, qword [rsi + 0x18]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x18], r13
mov qword [rsi + 0x20], 8
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x18000b589
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18000b72d
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x270
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000b72d
mov r12, rax
mov rax, qword [rsp + 0x20]
mov r13, qword [rax + 0x28]
mov rsi, qword [rax + 0x38]
test rsi, rsi
je 0x18000b5f5
lea rbp, [r13 + 0x30]
jmp 0x18000b5db
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp - 8]
mov rcx, rbp
call qword [rax + 0x10]
add rbp, 0x68
dec rsi
je 0x18000b5f5
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x18000b5c0
lea rcx, [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x20]
call qword [rax + 0x10]
jmp 0x18000b5c0
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x30], 0
je 0x18000b613
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x28], r12
mov qword [rax + 0x30], 6
mov qword [rax + 0x38], 0
jmp 0x18000ac31
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
mov rcx, rdi
call qword [rax + 0x10]
mov r9, qword [rsp + 0x28]
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
movups xmm0, xmmword [r11 + r10 + 0x18]
movups xmm1, xmmword [r11 + r10 + 0x28]
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
movzx eax, byte [r11 + r10 + 0x38]
mov ecx, dword [r11 + r10 + 0x3c]
mov dword [rsp + 0x4b], ecx
mov ecx, dword [r11 + r10 + 0x39]
mov dword [rsp + 0x48], ecx
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdx + 0x20]
mov qword [r11 + r10 + 0x38], rcx
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r11 + r10 + 0x18], xmm0
movups xmmword [r11 + r10 + 0x28], xmm1
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
mov rcx, qword [rsp + 0x58]
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
mov byte [rcx + 0x20], al
mov eax, dword [rsp + 0x48]
mov dword [rcx + 0x21], eax
mov eax, dword [rsp + 0x4b]
mov dword [rcx + 0x24], eax
cmp r13, rsi
jb 0x18000b6fc
mov rax, qword [r9]
test rax, rax
je 0x18000b6fc
lea rcx, [r9 + 0x18]
mov rdx, qword [r9 + 8]
mov r8, qword [r9 + 0x10]
call qword [rax + 0x10]
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
mov ecx, 2
mov edx, 0x20
call fcn.18017ea70
ud2
mov ecx, 8
mov edx, 0x270
call fcn.18017ea70
ud2