Function at 0x180009860
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 0x1800098f6
test rdi, rdi
js 0x180009f82
cvtsi2ss xmm0, rdi
test r12, r12
jns 0x180009fa2
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 [0x180190830]
jb 0x180009fb8
mov rcx, qword [rsp + 0x20]
mov qword [rcx], 0
add r12, r12
jmp 0x180009919
mov rax, r12
shr rax, 2
mov rcx, r12
sub rcx, rax
cmp rdi, rcx
jne 0x180009926
test rdi, rdi
je 0x18000a1d4
add r12, r12
mov rcx, qword [rsp + 0x20]
mov rdx, r12
call fcn.180009530
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.180009270
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 0x180009996
movzx eax, byte [rax + 8]
cmp al, byte [r9 + 8]
je 0x180009a4b
nop
inc rsi
inc r15
cmp r15, rbx
cmovae r15, r12
test rbx, rbx
je 0x180009da0
movzx eax, word [r14 + r15*4]
cmp rax, 0xffff
je 0x180009da2
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 0x180009e63
cmp cx, bp
jne 0x180009990
cmp rdx, rax
jbe 0x18000a418
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 0x180009990
lea rax, [r11 + r10]
add rax, 0x40
test rcx, rcx
je 0x180009981
mov r8, qword [rax + 0x10]
cmp r8, qword [r9 + 0x10]
jne 0x180009990
mov rdx, qword [r9 + 8]
mov rcx, qword [rax + 8]
mov r12, r10
call fcn.1801813c0
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 0x180009990
cmp qword [r11 + r10], 0
je 0x18000a35e
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 0x18000a418
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 0x180009b00
test r8, r8
je 0x180009b40
cmp rcx, rbp
jae 0x18000a418
lea r8, [rcx + rcx*8]
mov qword [r15 + r8*8 + 0x10], 1
mov qword [r15 + r8*8 + 0x18], r10
cmp r10, rbp
jae 0x18000a418
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 1
mov qword [r15 + rdx*8 + 8], rcx
jmp 0x180009ba0
test r8, r8
je 0x180009b7c
cmp rcx, rdx
jae 0x18000a418
imul r8, rcx, 0x68
cmp qword [r11 + r8], 0
je 0x18000a418
add r8, r11
mov qword [r8 + 8], r10
cmp r10, rbp
jae 0x18000a418
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 0
mov qword [r15 + rdx*8 + 8], rcx
jmp 0x180009ba0
cmp r10, rdx
jae 0x18000a418
imul r8, r10, 0x68
cmp qword [r11 + r8], 0
je 0x18000a418
add r8, r11
mov qword [r8 + 0x10], rcx
cmp rcx, rbp
jae 0x18000a418
lea rcx, [rcx + rcx*8]
mov qword [r15 + rcx*8 + 0x10], 0
mov qword [r15 + rcx*8 + 0x18], r10
jmp 0x180009ba0
cmp rcx, rdx
jae 0x18000a418
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 0x180009ce2
jbe 0x18000a418
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 0x180009c83
cmp rdi, rbp
jae 0x18000a418
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 0x180009cb4
cmp r9, rbp
mov r12, qword [rsp + 0x20]
jae 0x18000a418
lea r9, [r9 + r9*8]
mov qword [r15 + r9*8], 1
lea r9, [r15 + r9*8]
add r9, 8
jmp 0x180009cdf
cmp rdi, qword [rsp + 0x30]
jae 0x18000a418
imul r10, rdi, 0x68
mov rdi, qword [rsp + 0x38]
cmp qword [rdi + r10], 0
je 0x18000a418
add r10, rdi
add r10, 8
mov qword [r10], rax
test r11, r11
mov rdi, r12
jne 0x180009c5f
cmp r9, qword [rsp + 0x30]
mov r12, qword [rsp + 0x20]
jae 0x18000a418
imul r9, r9, 0x68
mov r10, qword [rsp + 0x38]
cmp qword [r10 + r9], 0
je 0x18000a418
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 0x18000a331
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 0x180009aa0
jmp 0x18000a418
jmp 0x180009da0
cmp rdx, 0x7fff
ja 0x18000a418
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 0x180009deb
mov rcx, qword [rsp + 0x40]
call fcn.180057a90
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 0x18000a418
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 0x18000a3fc
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 0x18000a418
mov rax, rdx
mov r12, qword [rsp + 0x20]
cmp rdx, qword [r12 + 0x30]
jne 0x180009ed4
mov ebx, ecx
mov rcx, qword [rsp + 0x40]
call fcn.180057a90
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 0x180009f80
nop word [rax + rax]
movzx r10d, word [r14 + r15*4]
cmp r10w, 0xffff
je 0x18000a1a2
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 0x180009f40
nop dword [rax]
jmp 0x180009f80
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 0x1800098bc
cvtsi2ss xmm1, r12
divss xmm0, xmm1
ucomiss xmm0, dword [0x180190830]
jae 0x1800098e5
mov eax, dword [0x18021ea3c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa8], 0
jne 0x180009fda
call fcn.18007c110
mov rdx, qword [rsp + 0x20]
mov qword [rdx], 2
mov eax, dword [0x18021ea3c]
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 0x18000a07f
lea rax, [r12 - 1]
movabs rcx, 0x3fffffffffffffff
and rcx, rax
mov rax, rsi
cmp rcx, 7
jb 0x18000a06c
inc rcx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
lea rax, [rdx*4]
xor r9d, r9d
movaps xmm0, xmmword [0x180190820]
movups xmmword [rsi + r9*4], xmm0
movups xmmword [rsi + r9*4 + 0x10], xmm0
add r9, 8
cmp rdx, r9
jne 0x18000a050
cmp rcx, rdx
je 0x18000a07f
add rax, rsi
lea rcx, [rsi + r12*4]
mov dword [rax], 0xffff
add rax, 4
cmp rax, rcx
jne 0x18000a070
test rdi, rdi
je 0x180009926
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.180009270
mov ecx, r14d
and ecx, eax
mov word [rbx + 0x60], ax
xor edx, edx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
je 0x18000a1a0
nop dword [rax + rax]
cmp word [rsi + rcx*4], 0xffff
je 0x18000a132
movzx r8d, word [rsi + rcx*4 + 2]
and r8d, r14d
mov r9d, ecx
sub r9d, r8d
and r9d, r14d
cmp r9, rdx
jb 0x18000a140
inc rdx
inc rcx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
jne 0x18000a100
jmp 0x18000a1a0
mov word [rsi + rcx*4], bp
mov r8, qword [rsp + 0x28]
mov rdx, rdi
jmp 0x18000a181
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 0x18000a17d
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 0x18000a150
mov word [rsi + rcx*4], bp
mov rbp, qword [rsp + 0x30]
mov word [rsi + rcx*4 + 2], ax
cmp r13, qword [rsp + 0x38]
jne 0x18000a0b7
jmp 0x180009926
jmp 0x18000a1a0
mov word [r14 + r15*4], dx
mov word [r14 + r15*4 + 2], bp
cmp rax, 0x80
setb al
not dil
test dil, al
jne 0x18000a1cd
cmp qword [r12], 0
jne 0x18000a1cd
mov qword [r12], 1
mov al, 2
jmp 0x18000a3b3
mov rax, qword [rsp + 0x20]
mov word [rax + 0x58], 7
movzx eax, byte [0x18021ea38]
mov rcx, qword [0x18021e9c0]
test rcx, rcx
jne 0x18000a20b
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18000a41c
mov rcx, rax
mov qword [0x18021e9c0], rax
mov r8d, 0x20
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000a41c
mov r13, rax
movaps xmm0, xmmword [0x180190820]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r12, r12
mov rsi, qword [rsp + 0x20]
je 0x18000a250
mov r8, qword [rsi + 0x18]
mov rcx, qword [0x18021e9c0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x18], r13
mov qword [rsi + 0x20], 8
movzx eax, byte [0x18021ea38]
mov rcx, qword [0x18021e9c0]
test rcx, rcx
jne 0x18000a288
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18000a42d
mov rcx, rax
mov qword [0x18021e9c0], rax
mov r8d, 0x270
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18000a42d
mov r12, rax
mov rax, qword [rsp + 0x20]
mov r13, qword [rax + 0x28]
mov rsi, qword [rax + 0x38]
test rsi, rsi
je 0x18000a2f5
lea rbp, [r13 + 0x30]
jmp 0x18000a2db
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 0x18000a2f5
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x18000a2c0
lea rcx, [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x20]
call qword [rax + 0x10]
jmp 0x18000a2c0
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x30], 0
je 0x18000a313
mov rcx, qword [0x18021e9c0]
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 0x180009921
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 0x18000a3fc
mov rax, qword [r9]
test rax, rax
je 0x18000a3fc
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.1801828e0
ud2
mov ecx, 8
mov edx, 0x270
call fcn.1801828e0
ud2