Function at 0x180003d20
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 0x180003db6
test rdi, rdi
js 0x180004442
cvtsi2ss xmm0, rdi
test r12, r12
jns 0x180004462
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 [0x180111750]
jb 0x180004478
mov rcx, qword [rsp + 0x20]
mov qword [rcx], 0
add r12, r12
jmp 0x180003dd9
mov rax, r12
shr rax, 2
mov rcx, r12
sub rcx, rax
cmp rdi, rcx
jne 0x180003de6
test rdi, rdi
je 0x180004694
add r12, r12
mov rcx, qword [rsp + 0x20]
mov rdx, r12
call fcn.1800039f0
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.180003730
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 0x180003e56
movzx eax, byte [rax + 8]
cmp al, byte [r9 + 8]
je 0x180003f0b
nop
inc rsi
inc r15
cmp r15, rbx
cmovae r15, r12
test rbx, rbx
je 0x180004260
movzx eax, word [r14 + r15*4]
cmp rax, 0xffff
je 0x180004262
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 0x180004323
cmp cx, bp
jne 0x180003e50
cmp rdx, rax
jbe 0x1800048d8
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 0x180003e50
lea rax, [r11 + r10]
add rax, 0x40
test rcx, rcx
je 0x180003e41
mov r8, qword [rax + 0x10]
cmp r8, qword [r9 + 0x10]
jne 0x180003e50
mov rdx, qword [r9 + 8]
mov rcx, qword [rax + 8]
mov r12, r10
call fcn.1800f9270
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 0x180003e50
cmp qword [r11 + r10], 0
je 0x18000481e
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 0x1800048d8
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 0x180003fc0
test r8, r8
je 0x180004000
cmp rcx, rbp
jae 0x1800048d8
lea r8, [rcx + rcx*8]
mov qword [r15 + r8*8 + 0x10], 1
mov qword [r15 + r8*8 + 0x18], r10
cmp r10, rbp
jae 0x1800048d8
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 1
mov qword [r15 + rdx*8 + 8], rcx
jmp 0x180004060
test r8, r8
je 0x18000403c
cmp rcx, rdx
jae 0x1800048d8
imul r8, rcx, 0x68
cmp qword [r11 + r8], 0
je 0x1800048d8
add r8, r11
mov qword [r8 + 8], r10
cmp r10, rbp
jae 0x1800048d8
lea rdx, [r10 + r10*8]
mov qword [r15 + rdx*8], 0
mov qword [r15 + rdx*8 + 8], rcx
jmp 0x180004060
cmp r10, rdx
jae 0x1800048d8
imul r8, r10, 0x68
cmp qword [r11 + r8], 0
je 0x1800048d8
add r8, r11
mov qword [r8 + 0x10], rcx
cmp rcx, rbp
jae 0x1800048d8
lea rcx, [rcx + rcx*8]
mov qword [r15 + rcx*8 + 0x10], 0
mov qword [r15 + rcx*8 + 0x18], r10
jmp 0x180004060
cmp rcx, rdx
jae 0x1800048d8
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 0x1800041a2
jbe 0x1800048d8
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 0x180004143
cmp rdi, rbp
jae 0x1800048d8
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 0x180004174
cmp r9, rbp
mov r12, qword [rsp + 0x20]
jae 0x1800048d8
lea r9, [r9 + r9*8]
mov qword [r15 + r9*8], 1
lea r9, [r15 + r9*8]
add r9, 8
jmp 0x18000419f
cmp rdi, qword [rsp + 0x30]
jae 0x1800048d8
imul r10, rdi, 0x68
mov rdi, qword [rsp + 0x38]
cmp qword [rdi + r10], 0
je 0x1800048d8
add r10, rdi
add r10, 8
mov qword [r10], rax
test r11, r11
mov rdi, r12
jne 0x18000411f
cmp r9, qword [rsp + 0x30]
mov r12, qword [rsp + 0x20]
jae 0x1800048d8
imul r9, r9, 0x68
mov r10, qword [rsp + 0x38]
cmp qword [r10 + r9], 0
je 0x1800048d8
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 0x1800047f1
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 0x180003f60
jmp 0x1800048d8
jmp 0x180004260
cmp rdx, 0x7fff
ja 0x1800048d8
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 0x1800042ab
mov rcx, qword [rsp + 0x40]
call fcn.180020830
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 0x1800048d8
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 0x1800048bc
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 0x1800048d8
mov rax, rdx
mov r12, qword [rsp + 0x20]
cmp rdx, qword [r12 + 0x30]
jne 0x180004394
mov ebx, ecx
mov rcx, qword [rsp + 0x40]
call fcn.180020830
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 0x180004440
nop word [rax + rax]
movzx r10d, word [r14 + r15*4]
cmp r10w, 0xffff
je 0x180004662
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 0x180004400
nop dword [rax]
jmp 0x180004440
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 0x180003d7c
cvtsi2ss xmm1, r12
divss xmm0, xmm1
ucomiss xmm0, dword [0x180111750]
jae 0x180003da5
mov eax, dword [0x18016cbc4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa0], 0
jne 0x18000449a
call fcn.180027110
mov rdx, qword [rsp + 0x20]
mov qword [rdx], 2
mov eax, dword [0x18016cbc4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movups xmm0, xmmword [rax + 0xa8]
inc qword [rax + 0xa8]
movups xmmword [rdx + 8], xmm0
mov rsi, qword [rdx + 0x18]
test r12, r12
mov r8, qword [rsp + 0x28]
je 0x18000453f
lea rax, [r12 - 1]
movabs rcx, 0x3fffffffffffffff
and rcx, rax
mov rax, rsi
cmp rcx, 7
jb 0x18000452c
inc rcx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
lea rax, [rdx*4]
xor r9d, r9d
movaps xmm0, xmmword [0x180111740]
movups xmmword [rsi + r9*4], xmm0
movups xmmword [rsi + r9*4 + 0x10], xmm0
add r9, 8
cmp rdx, r9
jne 0x180004510
cmp rcx, rdx
je 0x18000453f
add rax, rsi
lea rcx, [rsi + r12*4]
mov dword [rax], 0xffff
add rax, 4
cmp rax, rcx
jne 0x180004530
test rdi, rdi
je 0x180003de6
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.180003730
mov ecx, r14d
and ecx, eax
mov word [rbx + 0x60], ax
xor edx, edx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
je 0x180004660
nop dword [rax + rax]
cmp word [rsi + rcx*4], 0xffff
je 0x1800045f2
movzx r8d, word [rsi + rcx*4 + 2]
and r8d, r14d
mov r9d, ecx
sub r9d, r8d
and r9d, r14d
cmp r9, rdx
jb 0x180004600
inc rdx
inc rcx
cmp rcx, r12
cmovae rcx, r15
test r12, r12
jne 0x1800045c0
jmp 0x180004660
mov word [rsi + rcx*4], bp
mov r8, qword [rsp + 0x28]
mov rdx, rdi
jmp 0x180004641
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 0x18000463d
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 0x180004610
mov word [rsi + rcx*4], bp
mov rbp, qword [rsp + 0x30]
mov word [rsi + rcx*4 + 2], ax
cmp r13, qword [rsp + 0x38]
jne 0x180004577
jmp 0x180003de6
jmp 0x180004660
mov word [r14 + r15*4], dx
mov word [r14 + r15*4 + 2], bp
cmp rax, 0x80
setb al
not dil
test dil, al
jne 0x18000468d
cmp qword [r12], 0
jne 0x18000468d
mov qword [r12], 1
mov al, 2
jmp 0x180004873
mov rax, qword [rsp + 0x20]
mov word [rax + 0x58], 7
movzx eax, byte [0x18016cbc0]
mov rcx, qword [0x18016cb80]
test rcx, rcx
jne 0x1800046cb
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800048dc
mov rcx, rax
mov qword [0x18016cb80], rax
mov r8d, 0x20
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800048dc
mov r13, rax
movaps xmm0, xmmword [0x180111740]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
test r12, r12
mov rsi, qword [rsp + 0x20]
je 0x180004710
mov r8, qword [rsi + 0x18]
mov rcx, qword [0x18016cb80]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsi + 0x18], r13
mov qword [rsi + 0x20], 8
movzx eax, byte [0x18016cbc0]
mov rcx, qword [0x18016cb80]
test rcx, rcx
jne 0x180004748
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800048ed
mov rcx, rax
mov qword [0x18016cb80], rax
mov r8d, 0x270
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800048ed
mov r12, rax
mov rax, qword [rsp + 0x20]
mov r13, qword [rax + 0x28]
mov rsi, qword [rax + 0x38]
test rsi, rsi
je 0x1800047b5
lea rbp, [r13 + 0x30]
jmp 0x18000479b
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 0x1800047b5
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x180004780
lea rcx, [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x20]
call qword [rax + 0x10]
jmp 0x180004780
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x30], 0
je 0x1800047d3
mov rcx, qword [0x18016cb80]
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 0x180003de1
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 0x1800048bc
mov rax, qword [r9]
test rax, rax
je 0x1800048bc
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.180106200
ud2
mov ecx, 8
mov edx, 0x270
call fcn.180106200
ud2