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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r10d, dword [rsp + 0xa0]
mov esi, edx
mov rbx, qword [0x18009c3f0]
mov r9d, r10d
or r9d, 1
movaps xmmword [rsp + 0x30], xmm6
test r10b, 7
mov rax, qword [rbx + 0x3ec8]
cmovne r9d, r10d
mov r14d, r9d
or r14d, 0x20
test r9d, 0x3f0
mov byte [rax + 0xb8], 1
mov r15, qword [rbx + 0x3ec8]
cmovne r14d, r9d
mov rbp, qword [rbx + 0x3ed0]
mov qword [rsp + 0x20], r15
bt r14d, 0xb
jae 0x18002fafc
test rbp, rbp
je 0x18002fafc
cmp qword [rbp + 0x378], r15
jne 0x18002fafc
mov dil, 1
mov qword [rbx + 0x3ed0], r15
jmp 0x18002faff
xor dil, dil
xor r13b, r13b
call fcn.180006f40
xor r12d, r12d
mov dword [rsp + 0xa0], eax
test al, al
je 0x18002fb3d
cmp byte [rbx + 0x4a4c], r12b
je 0x18002fcb6
cmp dword [rbx + 0x4a6c], esi
jne 0x18002fb4a
test byte [rbx + 0x4a50], 2
jne 0x18002fb4a
mov byte [rsp + 0xa0], r12b
jmp 0x18002fb4a
cmp byte [rbx + 0x4a4c], r12b
je 0x18002fcb6
bt r14d, 9
jae 0x18002fcb6
test byte [rbx + 0x4a50], 4
jne 0x18002fcb6
mov r9, qword [0x18009c3f0]
mov r8, qword [r9 + 0x3ec8]
cmp byte [r9 + 0x48e7], r12b
je 0x18002fbb1
cmp byte [r9 + 0x48e6], r12b
jne 0x18002fbb1
test byte [r9 + 0x4768], 4
jne 0x18002fcbd
mov eax, dword [r9 + 0x48b0]
cmp eax, dword [r9 + 0x4764]
jne 0x18002fcbd
test eax, eax
jne 0x18002fc58
jmp 0x18002fcbd
mov eax, dword [r9 + 0x476c]
test al, 1
je 0x18002fcbd
cmp qword [r9 + 0x3ed0], r8
je 0x18002fbd1
test al, al
jns 0x18002fcbd
mov rcx, qword [r9 + 0x48a8]
test rcx, rcx
je 0x18002fc38
mov rcx, qword [rcx + 0x378]
test rcx, rcx
je 0x18002fc38
cmp byte [rcx + 0xb7], r12b
je 0x18002fc38
mov rax, qword [r8 + 0x378]
cmp rcx, rax
je 0x18002fc38
mov edx, dword [rcx + 0x14]
bt edx, 0x1b
jb 0x18002fc0d
bt edx, 0x1a
jae 0x18002fc38
cmp qword [rax + 0x378], rcx
je 0x18002fc38
cmp rax, rcx
je 0x18002fc38
mov rax, qword [rax + 0x370]
test rax, rax
jne 0x18002fc16
test dword [r9 + 0x4768], 0x100
je 0x18002fcbd
test byte [r9 + 0x4768], 4
jne 0x18002fcbd
mov eax, dword [r8 + 0x7c]
cmp dword [r9 + 0x4764], eax
jne 0x18002fc58
cmp byte [r8 + 0xb8], r12b
jne 0x18002fcbd
mov dword [r9 + 0x3f14], esi
mov dl, 1
mov dword [rsp + 0xa0], edx
mov byte [r9 + 0x3f1c], r12b
test esi, esi
je 0x18002fc83
cmp dword [r9 + 0x3f18], esi
je 0x18002fc83
mov qword [r9 + 0x3f20], r12
movss xmm1, dword [rbx + 0x3f20]
movss xmm2, dword [0x18006648c]
movaps xmm0, xmm1
subss xmm0, dword [rbx + 0x18]
comiss xmm2, xmm0
jb 0x18002fcc4
comiss xmm1, xmm2
jb 0x18002fcc4
mov rcx, r15
mov dword [rbx + 0x4ac8], esi
mov r13b, 1
call fcn.18000f3d0
mov r9, qword [0x18009c3f0]
mov edx, dword [rsp + 0xa0]
test dil, dil
je 0x18002fcd0
mov qword [rbx + 0x3ed0], rbp
mov r10d, 1
xorps xmm6, xmm6
test dl, dl
je 0x18002fd0c
bt r14d, 0xc
jae 0x18002fd0c
mov eax, dword [rbx + 0x3f18]
cmp eax, esi
je 0x18002fd0c
test eax, eax
je 0x18002fd0c
xor dl, dl
mov r15d, esi
bt r14d, 0x15
mov dword [rsp + 0xa0], edx
cmovb r15d, r12d
jmp 0x180030015
bt r14d, 0x15
mov r15d, esi
cmovb r15d, r12d
test dl, dl
je 0x180030015
mov edi, 0xffffffff
mov ebp, edi
test r10b, r14b
je 0x18002fd79
cmp byte [r9 + 0xe10], r12b
je 0x18002fd5d
movss xmm0, dword [r9 + 0x3778]
comiss xmm6, xmm0
ja 0x18002fd5d
ucomiss xmm0, xmm6
jp 0x18002fd5d
jne 0x18002fd5d
mov edx, r15d
mov ecx, 0x281
call fcn.180011f20
test al, al
cmovne edi, r12d
cmp byte [r9 + 0x3766], r12b
je 0x18002fd79
mov edx, r15d
mov ecx, 0x281
call fcn.180011f20
test al, al
cmovne ebp, r12d
test r14b, 2
je 0x18002fdd6
cmp byte [r9 + 0xe11], r12b
je 0x18002fdb5
movss xmm0, dword [r9 + 0x377c]
comiss xmm6, xmm0
ja 0x18002fdb5
ucomiss xmm0, xmm6
jp 0x18002fdb5
jne 0x18002fdb5
mov edx, r15d
mov ecx, 0x282
call fcn.180011f20
test al, al
je 0x18002fdb5
cmp edi, 0xffffffff
cmove edi, r10d
cmp byte [r9 + 0x3767], r12b
je 0x18002fdd6
mov edx, r15d
mov ecx, 0x282
call fcn.180011f20
test al, al
je 0x18002fdd6
cmp ebp, 0xffffffff
cmove ebp, r10d
test r14b, 4
je 0x18002fe39
mov r10d, 2
cmp byte [r9 + 0xe12], r12b
je 0x18002fe18
movss xmm0, dword [r9 + 0x3780]
comiss xmm6, xmm0
ja 0x18002fe18
ucomiss xmm0, xmm6
jp 0x18002fe18
jne 0x18002fe18
mov edx, r15d
mov ecx, 0x283
call fcn.180011f20
test al, al
je 0x18002fe18
cmp edi, 0xffffffff
cmove edi, r10d
cmp byte [r9 + 0x3768], r12b
je 0x18002fe39
mov edx, r15d
mov ecx, 0x283
call fcn.180011f20
test al, al
je 0x18002fe39
cmp ebp, 0xffffffff
cmove ebp, r10d
bt r14d, 0x10
jae 0x18002fe67
cmp byte [rbx + 0xe20], r12b
jne 0x18002fffc
cmp byte [rbx + 0xe21], r12b
jne 0x18002fffc
cmp byte [rbx + 0xe22], r12b
jne 0x18002fffc
cmp edi, 0xffffffff
je 0x18002ff3b
cmp dword [rbx + 0x3f28], esi
je 0x18002ff3b
bt r14d, 0x14
jb 0x18002fe98
lea ecx, [rdi + 0x281]
call fcn.180002180
mov dword [rax + 4], esi
mov dword [rax], esi
mov word [rax + 8], r12w
test r14b, 0x60
je 0x18002fed4
mov rdx, qword [rsp + 0x20]
mov ecx, esi
call fcn.180006d10
mov dword [rbx + 0x3f54], edi
bt r14d, 0x12
jb 0x18002fec3
mov rdx, qword [rsp + 0x20]
mov ecx, esi
call fcn.180013ff0
mov rcx, qword [rsp + 0x20]
call fcn.18000f3d0
mov r9, qword [0x18009c3f0]
test r14b, 0x10
jne 0x18002feef
bt r14d, 8
jae 0x18002ff3b
movsxd rax, edi
cmp word [rbx + rax*2 + 0x3752], 2
jne 0x18002ff3b
mov r13b, 1
bt r14d, 0x11
jae 0x18002ff00
call fcn.180006e50
jmp 0x18002ff0c
mov rdx, qword [rsp + 0x20]
mov ecx, esi
call fcn.180006d10
bt r14d, 0x12
jb 0x18002ff1f
mov rdx, qword [rsp + 0x20]
mov ecx, esi
call fcn.180013ff0
mov dword [rbx + 0x3f54], edi
mov rdi, qword [rsp + 0x20]
mov rcx, rdi
call fcn.18000f3d0
mov r9, qword [0x18009c3f0]
jmp 0x18002ff40
mov rdi, qword [rsp + 0x20]
test r14b, r14b
jns 0x18002ff83
cmp ebp, 0xffffffff
je 0x18002ff83
bt r14d, 0xa
jae 0x18002ff63
movsxd rax, ebp
movss xmm0, dword [rbx + rax*4 + 0x378c]
comiss xmm0, dword [rbx + 0x3c]
jae 0x18002ff66
mov r13b, 1
bt r14d, 0x12
jb 0x18002ff77
mov rdx, rdi
mov ecx, esi
call fcn.180013ff0
call fcn.180006e50
mov r9, qword [0x18009c3f0]
cmp dword [rbx + 0x3f28], esi
jne 0x18002fffc
bt r14d, 0xa
jae 0x18002fffc
movsxd rdx, dword [rbx + 0x3f54]
movss xmm0, dword [rbx + rdx*4 + 0x3778]
comiss xmm0, xmm6
jbe 0x18002fffc
cmp byte [rdx + r9 + 0xe10], r12b
je 0x18002fffc
movss xmm1, dword [r9 + rdx*4 + 0x3778]
comiss xmm6, xmm1
ja 0x18002fffc
ucomiss xmm1, xmm6
jp 0x18002ffcb
je 0x1800300ea
movss xmm2, dword [r9 + 0x3c]
comiss xmm1, xmm2
jbe 0x18002fffc
movss xmm3, dword [r9 + 0x40]
movaps xmm0, xmm1
subss xmm0, dword [r9 + 0x18]
comiss xmm0, xmm1
jae 0x18002fffc
comiss xmm6, xmm3
jb 0x1800300bc
comiss xmm2, xmm0
ja 0x1800300ea
test r13b, r13b
je 0x180030008
mov byte [rbx + 0x48e6], 1
mov edx, dword [rsp + 0xa0]
mov r10d, 1
cmp dword [rbx + 0x48b0], esi
jne 0x18003005a
cmp byte [rbx + 0x48e6], r12b
jne 0x18003005a
cmp byte [rbx + 0x48e7], r12b
je 0x18003005a
mov eax, dword [rbx + 0x3f28]
test eax, eax
je 0x180030047
cmp eax, esi
je 0x180030047
mov rcx, qword [rsp + 0x20]
cmp eax, dword [rcx + 0x7c]
jne 0x18003005a
bt r14d, 0x13
movzx edx, dl
cmovae edx, r10d
mov dword [rsp + 0xa0], edx
cmp dword [rbx + 0x48bc], esi
jne 0x18003019c
cmp dword [rbx + 0x48c0], esi
sete cl
je 0x18003015c
bt r14d, 0xa
jae 0x18003015c
movss xmm0, dword [r9 + 0x2eec]
maxss xmm0, dword [r9 + 0x2efc]
movss xmm3, dword [rbx + 0x40]
movss xmm2, dword [rbx + 0x3c]
maxss xmm0, dword [r9 + 0x350c]
ucomiss xmm0, xmm6
movaps xmm1, xmm0
subss xmm1, dword [rbx + 0x18]
jp 0x180030108
jne 0x180030108
mov r12d, r10d
jmp 0x180030156
comiss xmm2, xmm0
jbe 0x1800300c8
mov ecx, 0xffffffff
jmp 0x1800300d4
subss xmm0, xmm2
divss xmm0, xmm3
cvttss2si ecx, xmm0
subss xmm1, xmm2
divss xmm1, xmm3
cvttss2si eax, xmm1
sub eax, ecx
test eax, eax
jle 0x18002fffc
lea ecx, [rdx + 0x281]
mov edx, r15d
call fcn.180011f20
test al, al
je 0x18002fffc
mov r13b, 1
jmp 0x180030001
comiss xmm1, xmm0
jae 0x180030156
comiss xmm6, xmm3
jb 0x180030121
comiss xmm2, xmm1
jbe 0x180030156
comiss xmm0, xmm2
jb 0x180030156
mov r12d, r10d
jmp 0x180030156
comiss xmm2, xmm1
jbe 0x18003012d
mov eax, 0xffffffff
jmp 0x180030139
subss xmm1, xmm2
divss xmm1, xmm3
cvttss2si eax, xmm1
comiss xmm2, xmm0
jbe 0x180030146
mov r12d, 0xffffffff
jmp 0x180030153
subss xmm0, xmm2
divss xmm0, xmm3
cvttss2si r12d, xmm0
sub r12d, eax
test r12d, r12d
setg cl
cmp dword [rbx + 0x48b8], esi
je 0x180030168
test cl, cl
je 0x18003019c
mov rdi, qword [rsp + 0x20]
mov ecx, esi
mov rdx, rdi
mov r13b, 1
call fcn.180006d10
mov dword [rbx + 0x3f50], 5
bt r14d, 0x12
jb 0x180030195
mov rdx, rdi
mov ecx, esi
call fcn.180013ff0
mov r9, qword [0x18009c3f0]
xor dil, dil
cmp dword [rbx + 0x3f28], esi
jne 0x1800302ee
mov eax, dword [rbx + 0x3f50]
cmp eax, 1
jne 0x1800302c7
cmp byte [rbx + 0x3f34], dil
je 0x1800301f4
movss xmm1, dword [rbx + 0xe08]
movss xmm0, dword [rbx + 0xe0c]
mov rax, qword [rsp + 0x80]
subss xmm1, dword [rax]
subss xmm0, dword [rax + 4]
movss dword [rbx + 0x3f3c], xmm1
movss dword [rbx + 0x3f40], xmm0
movsxd r10, dword [rbx + 0x3f54]
cmp byte [r10 + r9 + 0xe10], dil
je 0x180030227
lea ecx, [r10 + 0x281]
mov edx, r15d
call fcn.180011f20
test al, al
je 0x180030227
mov esi, dword [rsp + 0xa0]
mov dil, 1
jmp 0x1800302b7
mov esi, dword [rsp + 0xa0]
test sil, sil
je 0x180030239
test r14b, 0x20
jne 0x180030243
mov eax, r14d
shr eax, 6
test al, 1
je 0x1800302b2
cmp byte [rbx + 0x4a4c], dil
jne 0x1800302b2
bt r14d, 8
jae 0x18003026d
cmp byte [r10 + rbx + 0x3766], dil
je 0x18003026d
cmp word [rbx + r10*2 + 0x375c], 2
jne 0x18003026d
mov cl, 1
jmp 0x18003026f
xor cl, cl
bt r14d, 0xa
jae 0x18003028a
movss xmm0, dword [rbx + r10*4 + 0x378c]
comiss xmm0, dword [rbx + 0x3c]
jb 0x18003028a
mov al, 1
jmp 0x18003028c
xor al, al
test cl, cl
jne 0x1800302b2
test al, al
jne 0x1800302b2
lea ecx, [r10 + 0x281]
mov edx, r15d
call fcn.180011f20
test al, al
movzx r13d, r13b
mov eax, 1
cmovne r13d, eax
call fcn.180006e50
bt r14d, 0x12
jb 0x1800302e0
mov byte [rbx + 0x48e6], 1
jmp 0x1800302e0
cmp eax, 5
jne 0x1800302d9
cmp dword [rbx + 0x48bc], esi
je 0x1800302d9
call fcn.180006e50
mov esi, dword [rsp + 0xa0]
test r13b, r13b
je 0x1800302f5
mov byte [rbx + 0x3f37], 1
jmp 0x1800302f5
mov esi, dword [rsp + 0xa0]
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x180030305
mov byte [rax], sil
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x180030315
mov byte [rax], dil
mov rbx, qword [rsp + 0x88]
movzx eax, r13b
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret