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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x238]
sub rsp, 0x310
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x18028c2e8]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov r15, rcx
mov qword [rbp - 0x60], rcx
xor r12d, r12d
xorps xmm11, xmm11
cmp dword [rcx + 0x78], r12d
jge 0x18002bb6f
mov dword [rbp - 0x40], 0xffffffff
mov qword [rbp - 0x3c], r12
mov dword [rbp - 0x34], r12d
mov qword [rbp - 0x30], r12
mov dword [rbp - 0x48], 0x80000000
lea rdx, [rbp - 0x48]
test byte [rcx + 4], 2
mov dword [rbp - 0x44], 0x1b00d9
je 0x18002bb5c
mov dword [rbp - 0x44], 0x20002
add rcx, 0x58
call fcn.18002f680
mov eax, dword [r15 + 0x58]
dec eax
mov dword [r15 + 0x78], eax
mov qword [r15 + 8], r12
mov qword [r15 + 0x30], r12
mov qword [r15 + 0x38], r12
mov qword [r15 + 0x40], r12
mov rcx, qword [r15 + 0x20]
test rcx, rcx
je 0x18002bb8d
call fcn.18001e420
mov rcx, qword [r15 + 0x28]
test rcx, rcx
je 0x18002bb9b
call fcn.18001e420
mov qword [r15 + 0x20], r12
mov qword [r15 + 0x28], r12
mov qword [rbp + 0x50], r12
mov r14, r12
mov qword [rsp + 0x78], r12
mov qword [rbp + 0x58], r12
mov qword [rbp - 0x20], r12
mov r13, r12
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x18], r12
mov esi, dword [r15 + 0x68]
mov dword [rsp + 0x68], esi
mov eax, 8
test esi, esi
jle 0x18002bc01
mov ebx, esi
cmp esi, eax
cmovl ebx, eax
test ebx, ebx
jle 0x18002bc01
movsxd rax, ebx
imul rcx, rax, 0x110
call fcn.18001e400
mov r14, rax
mov qword [rsp + 0x78], rax
mov qword [rbp + 0x58], rax
mov dword [rbp + 0x54], ebx
mov eax, 8
mov dword [rbp + 0x50], esi
mov edi, dword [r15 + 0x48]
mov dword [rsp + 0x74], edi
test edi, edi
jle 0x18002bc36
mov ebx, edi
cmp edi, 8
cmovl ebx, eax
test ebx, ebx
jle 0x18002bc36
movsxd rcx, ebx
shl rcx, 5
call fcn.18001e400
mov r13, rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x1c], ebx
mov dword [rbp - 0x20], edi
imul ecx, esi, 0x110
movsxd r8, ecx
xor edx, edx
mov rcx, r14
call fcn.18003fa60
mov ecx, edi
shl ecx, 5
movsxd r8, ecx
xor edx, edx
mov rcx, r13
call fcn.18003fa60
cmp dword [r15 + 0x68], 0
jle 0x18002bd69
xor edi, edi
lea rbx, [r14 + 0xe4]
mov rsi, qword [r15 + 0x70]
mov dword [rbx - 4], 0xffffffff
xor edx, edx
cmp dword [r15 + 0x48], edx
jle 0x18002bdbd
mov eax, 0xffffffff
xor r8d, r8d
cmp eax, 0xffffffff
jne 0x18002bcc7
mov rax, qword [r15 + 0x50]
mov rcx, qword [r8 + rax]
cmp qword [rdi + rsi + 0x80], rcx
jne 0x18002bcaf
mov dword [rbx - 4], edx
mov eax, edx
jmp 0x18002bcb2
mov eax, dword [rbx - 4]
inc edx
add r8, 8
cmp edx, dword [r15 + 0x48]
jl 0x18002bc91
cmp eax, 0xffffffff
je 0x18002bdbd
mov edx, dword [rdi + rsi + 0x10]
mov rcx, qword [rdi + rsi]
call fcn.180035aa0
mov r8d, eax
mov rdx, qword [rdi + rsi]
lea rcx, [rbx - 0xe4]
call fcn.1800305a0
test eax, eax
je 0x18002bdbd
movsxd r8, dword [rbx - 4]
shl r8, 5
add r8, r13
mov rax, qword [rdi + rsi + 0x38]
lea rdx, [0x1800de81c]
test rax, rax
cmovne rdx, rax
mov qword [rbx - 0xc], rdx
cmp word [rdx], 0
je 0x18002bd33
movzx eax, word [rdx + 2]
test ax, ax
je 0x18002bd33
mov ecx, eax
cmp dword [rbx], eax
cmovge ecx, dword [rbx]
mov dword [rbx], ecx
add rdx, 4
cmp word [rdx], 0
jne 0x18002bd17
inc dword [r8]
mov ecx, dword [rbx]
cmp dword [r8 + 4], ecx
cmovge ecx, dword [r8 + 4]
mov dword [r8 + 4], ecx
inc r12d
add rbx, 0x110
add rdi, 0x88
cmp r12d, dword [r15 + 0x68]
jl 0x18002bc72
mov esi, dword [rsp + 0x68]
mov r14, qword [rsp + 0x78]
xor r12d, r12d
mov r13d, r12d
mov dword [rsp + 0x64], r12d
test esi, esi
jle 0x18002c0d6
lea r15, [r14 + 0xf8]
mov eax, esi
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x78], rax
nop dword [rax]
movsxd r14, dword [r15 - 0x18]
shl r14, 5
add r14, qword [rbp - 0x68]
mov ebx, dword [r15 - 0x14]
add ebx, 0x20
sar ebx, 5
mov ecx, dword [r15 - 4]
cmp ebx, ecx
jle 0x18002be0a
test ecx, ecx
je 0x18002bdc4
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002bdc9
xor bl, bl
jmp 0x18002cf4b
mov eax, 8
mov edi, ebx
cmp eax, ebx
cmovg edi, eax
cmp edi, ecx
jle 0x18002be0a
movsxd rcx, edi
shl rcx, 2
call fcn.18001e400
mov rsi, rax
mov rdx, qword [r15]
test rdx, rdx
je 0x18002be03
movsxd r8, dword [r15 - 8]
shl r8, 2
mov rcx, rax
call fcn.18003f3b0
mov rcx, qword [r15]
call fcn.18001e420
mov qword [r15], rsi
mov dword [r15 - 4], edi
mov dword [r15 - 8], ebx
movsxd r8, ebx
shl r8, 2
xor edx, edx
mov rcx, qword [r15]
call fcn.18003fa60
cmp dword [r14 + 0x10], 0
jne 0x18002beaa
mov ebx, dword [r14 + 4]
add ebx, 0x20
sar ebx, 5
mov ecx, dword [r14 + 0x14]
cmp ebx, ecx
jle 0x18002be94
test ecx, ecx
je 0x18002be4b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002be50
mov eax, 8
mov edi, ebx
cmp eax, ebx
cmovg edi, eax
cmp edi, ecx
jle 0x18002be94
movsxd rcx, edi
shl rcx, 2
call fcn.18001e400
mov rsi, rax
mov rdx, qword [r14 + 0x18]
test rdx, rdx
je 0x18002be8c
movsxd r8, dword [r14 + 0x10]
shl r8, 2
mov rcx, rax
call fcn.18003f3b0
mov rcx, qword [r14 + 0x18]
call fcn.18001e420
mov qword [r14 + 0x18], rsi
mov dword [r14 + 0x14], edi
mov dword [r14 + 0x10], ebx
movsxd r8, ebx
shl r8, 2
xor edx, edx
mov rcx, qword [r14 + 0x18]
call fcn.18003fa60
mov r12, qword [r15 - 0x20]
movzx eax, word [r12]
test ax, ax
je 0x18002bf4a
nop dword [rax]
movzx ecx, word [r12 + 2]
test cx, cx
je 0x18002bf4a
movzx ebx, ax
cmp ebx, ecx
ja 0x18002bf38
nop dword [rax]
nop word [rax + rax]
mov edx, ebx
sar edx, 5
mov ecx, ebx
and ecx, 0x1f
mov esi, 1
shl esi, cl
movsxd rdi, edx
mov rax, qword [r14 + 0x18]
test dword [rax + rdi*4], esi
jne 0x18002bf27
lea rcx, [r15 - 0xf8]
mov edx, ebx
call fcn.180035710
test eax, eax
je 0x18002bf27
inc dword [r15 - 0x10]
inc dword [r14 + 8]
mov rax, qword [r15]
or dword [rax + rdi*4], esi
mov rax, qword [r14 + 0x18]
or dword [rax + rdi*4], esi
inc r13d
inc ebx
movzx eax, word [r12 + 2]
cmp ebx, eax
jbe 0x18002bee0
mov dword [rsp + 0x64], r13d
add r12, 4
movzx eax, word [r12]
test ax, ax
jne 0x18002bec0
add r15, 0x110
sub qword [rbp - 0x78], 1
jne 0x18002bd90
mov rbx, qword [rsp + 0x78]
add rbx, 0x100
nop dword [rax + rax]
movsxd rdi, dword [rbx - 0x18]
cmp edi, dword [rbx + 4]
jle 0x18002bfb0
mov rcx, rdi
shl rcx, 2
call fcn.18001e400
mov rsi, rax
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x18002bfa9
movsxd r8, dword [rbx]
shl r8, 2
mov rcx, rax
call fcn.18003f3b0
mov rcx, qword [rbx + 8]
call fcn.18001e420
mov qword [rbx + 8], rsi
mov dword [rbx + 4], edi
mov rdx, qword [rbx - 8]
mov qword [rbp - 0x78], rdx
movsxd rax, dword [rbx - 0x10]
lea rax, [rdx + rax*4]
mov qword [rbp - 0x80], rax
mov r13, rdx
cmp rdx, rax
jae 0x18002c0a2
mov eax, dword [r13]
mov dword [rsp + 0x60], eax
test eax, eax
je 0x18002c094
xor r14d, r14d
mov esi, 1
test esi, eax
je 0x18002c085
lea r12, [r13*8]
lea rax, [rdx*8]
sub r12d, eax
and r12d, 0xffffffe0
add r12d, r14d
mov ecx, dword [rbx + 4]
mov r8d, dword [rbx]
cmp r8d, ecx
jne 0x18002c070
lea edi, [r8 + 1]
test ecx, ecx
je 0x18002c028
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002c02d
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18002c070
movsxd rcx, edi
shl rcx, 2
call fcn.18001e400
mov r15, rax
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x18002c066
movsxd r8, dword [rbx]
shl r8, 2
mov rcx, rax
call fcn.18003f3b0
mov rcx, qword [rbx + 8]
call fcn.18001e420
mov qword [rbx + 8], r15
mov dword [rbx + 4], edi
mov r8d, dword [rbx]
movsxd rcx, r8d
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], r12d
inc dword [rbx]
mov eax, dword [rsp + 0x60]
mov rdx, qword [rbp - 0x78]
inc r14d
rol esi, 1
cmp r14d, 0x20
jl 0x18002bfe8
add r13, 4
cmp r13, qword [rbp - 0x80]
jb 0x18002bfd0
mov rcx, qword [rbx - 8]
xor r12d, r12d
test rcx, rcx
je 0x18002c0bb
mov qword [rbx - 0x10], r12
call fcn.18001e420
mov qword [rbx - 8], r12
add rbx, 0x110
sub qword [rbp - 0x58], 1
jne 0x18002bf70
mov r13d, dword [rsp + 0x64]
mov r15, qword [rbp - 0x60]
mov eax, dword [rsp + 0x74]
test eax, eax
jle 0x18002c10a
mov rbx, qword [rbp - 0x68]
add rbx, 0x18
mov edi, eax
mov rcx, qword [rbx]
test rcx, rcx
je 0x18002c100
mov qword [rbx - 8], 0
call fcn.18001e420
mov qword [rbx], r12
add rbx, 0x20
sub rdi, 1
jne 0x18002c0e8
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x18002c12e
mov qword [rbp - 0x20], 0
mov rcx, rax
call fcn.18001e420
mov rax, r12
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], 0
mov rsi, r12
mov qword [rbp - 0x80], r12
mov qword [rbp - 8], r12
mov qword [rbp - 0x48], 0
mov r14, r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x40], r12
mov eax, 8
test r13d, r13d
jle 0x18002c18a
mov ebx, r13d
cmp r13d, eax
cmovl ebx, eax
test ebx, ebx
jle 0x18002c18a
movsxd rcx, ebx
shl rcx, 4
call fcn.18001e400
mov rsi, rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 8], rax
mov dword [rbp - 0xc], ebx
mov eax, 8
mov dword [rbp - 0x10], r13d
test r13d, r13d
jle 0x18002c1bb
mov ebx, r13d
cmp r13d, 8
cmovl ebx, eax
test ebx, ebx
jle 0x18002c1bb
movsxd rax, ebx
imul rcx, rax, 0x1c
call fcn.18001e400
mov r14, rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x40], rax
mov dword [rbp - 0x44], ebx
mov dword [rbp - 0x48], r13d
mov ecx, r13d
shl ecx, 4
movsxd r8, ecx
xor edx, edx
mov rcx, rsi
call fcn.18003fa60
imul ecx, r13d, 0x1c
movsxd r8, ecx
xor edx, edx
mov rcx, r14
call fcn.18003fa60
xor edx, edx
mov dword [rsp + 0x64], edx
xor r9d, r9d
mov dword [rsp + 0x74], r9d
xor r10d, r10d
mov dword [rsp + 0x60], r10d
mov r13d, 0x100
movss xmm9, dword [0x1800d9ee0]
mov eax, dword [rsp + 0x68]
test eax, eax
jle 0x18002c5ef
xor edi, edi
mov rbx, qword [rsp + 0x78]
add rbx, 0xd0
mov r11d, eax
mov qword [rbp - 0x58], rax
movss xmm10, dword [0x1800d9ef0]
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x18002c5c9
movsxd rax, r9d
shl rax, 4
add rax, rsi
mov qword [rbx - 8], rax
movsxd rax, r10d
imul rdx, rax, 0x1c
add rdx, r14
mov qword [rbx], rdx
add r9d, r8d
mov dword [rsp + 0x74], r9d
add r10d, r8d
mov dword [rsp + 0x60], r10d
mov r12, qword [r15 + 0x70]
mov eax, dword [rdi + r12 + 0x14]
mov dword [rbx - 0x30], eax
mov dword [rbx - 0x2c], 0
mov rax, qword [rbx + 0x38]
mov qword [rbx - 0x28], rax
mov esi, dword [rbx + 0x30]
mov dword [rbx - 0x20], esi
mov qword [rbx - 0x18], rdx
movzx eax, byte [rdi + r12 + 0x18]
mov byte [rbx - 0x10], al
movzx eax, byte [rdi + r12 + 0x1c]
mov byte [rbx - 0xf], al
movss xmm6, dword [rdi + r12 + 0x14]
comiss xmm6, xmm11
jbe 0x18002c2fd
movsxd r11, dword [rbx - 0xac]
mov r10, qword [rbx - 0xc8]
movzx r8d, byte [r11 + r10 + 5]
movzx edx, byte [r11 + r10 + 4]
movsx ecx, r13w
imul edx, ecx
add r8w, dx
movsx r9d, r8w
movzx r8d, byte [r11 + r10 + 7]
movzx eax, byte [r11 + r10 + 6]
movsx ecx, r13w
imul eax, ecx
add ax, r8w
cwde
sub r9d, eax
movd xmm0, r9d
mov r11, qword [rbp - 0x58]
jmp 0x18002c322
movsxd rcx, dword [rbx - 0xb4]
mov rax, qword [rbx - 0xc8]
movzx edx, byte [rcx + rax + 0x13]
movzx eax, byte [rcx + rax + 0x12]
shl eax, 8
add edx, eax
xorps xmm6, xmm10
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
movss xmm0, dword [r15 + 0x1c]
andps xmm0, xmm9
movss xmm1, dword [r15 + 0x18]
andps xmm1, xmm9
maxss xmm1, xmm0
movd xmm0, dword [r15 + 0x14]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp - 0x70], eax
mov dword [rbp - 0x28], 0
test esi, esi
jle 0x18002c5c1
xor esi, esi
xor r15d, r15d
nop dword [rax]
mov rax, qword [rbx + 0x38]
mov edx, dword [rax + r15]
lea rcx, [rbx - 0xd0]
call fcn.180035710
movd xmm7, dword [rdi + r12 + 0x1c]
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm6
mov r14d, dword [rdi + r12 + 0x18]
movd xmm8, r14d
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm6
mov edx, eax
lea rcx, [rbx - 0xd0]
cmp dword [rbx - 0x84], 0
je 0x18002c415
mov qword [rbp + 0x10], 1
xor r14d, r14d
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x28], xmm1
mov qword [rbp + 0x38], r14
mov dword [rbp + 0x40], r14d
lea r8, [rbp + 0x10]
call fcn.180033af0
mov r11d, r14d
test eax, eax
cmovne r11d, dword [rbp + 0x28]
mov r13d, r14d
cmovne r13d, dword [rbp + 0x30]
mov ecx, r14d
cmovne ecx, dword [rbp + 0x2c]
mov dword [rsp + 0x70], ecx
mov ecx, r14d
cmovne ecx, dword [rbp + 0x34]
mov dword [rsp + 0x6c], ecx
movzx r14d, word [rdi + r12 + 0x18]
jmp 0x18002c4b3
call fcn.180030aa0
test eax, eax
jns 0x18002c42d
xor eax, eax
xor edx, edx
xor r8d, r8d
xor r9d, r9d
jmp 0x18002c53d
movsxd r10, eax
mov r9, qword [rbx - 0xc8]
movzx r8d, byte [r10 + r9 + 3]
movzx edx, byte [r10 + r9 + 2]
mov r13d, 0x100
movsx ecx, r13w
imul edx, ecx
add r8w, dx
movsx r11d, r8w
movzx r8d, byte [r10 + r9 + 5]
movzx edx, byte [r10 + r9 + 4]
movsx ecx, r13w
imul edx, ecx
add r8w, dx
movsx r13d, r8w
movzx r8d, byte [r10 + r9 + 7]
movzx eax, byte [r10 + r9 + 6]
mov ecx, 0x100
movsx ecx, cx
imul eax, ecx
add ax, r8w
cwde
mov dword [rsp + 0x70], eax
movzx r8d, byte [r10 + r9 + 9]
movzx eax, byte [r10 + r9 + 8]
mov ecx, 0x100
movsx ecx, cx
imul eax, ecx
add ax, r8w
cwde
mov dword [rsp + 0x6c], eax
xorps xmm0, xmm0
cvtsi2ss xmm0, r11d
mulss xmm0, xmm8
addss xmm0, xmm11
call fcn.18004fd90
cvttss2si eax, xmm0
mov dword [rbp], eax
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [rsp + 0x6c]
mulss xmm1, xmm7
movaps xmm0, xmm11
subss xmm0, xmm1
call fcn.18004fd90
cvttss2si eax, xmm0
mov dword [rsp + 0x6c], eax
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rsp + 0x70]
mulss xmm0, xmm8
addss xmm0, xmm11
call fcn.18004fd08
cvttss2si eax, xmm0
mov dword [rsp + 0x70], eax
xorps xmm1, xmm1
cvtsi2ss xmm1, r13d
mulss xmm1, xmm7
movaps xmm0, xmm11
subss xmm0, xmm1
call fcn.18004fd08
cvttss2si r9d, xmm0
mov eax, dword [rbp]
mov edx, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x70]
mov r10d, dword [rbp - 0x70]
movzx ecx, r10w
sub cx, ax
dec cx
add cx, r14w
add cx, r8w
mov rax, qword [rbx - 8]
mov word [rax + rsi + 4], cx
movzx ecx, word [rdi + r12 + 0x1c]
sub cx, dx
dec cx
add cx, r10w
add cx, r9w
mov rax, qword [rbx - 8]
mov word [rax + rsi + 6], cx
mov rax, qword [rbx - 8]
movzx ecx, word [rax + rsi + 6]
movzx eax, word [rax + rsi + 4]
imul ecx, eax
mov edx, dword [rsp + 0x64]
add edx, ecx
mov dword [rsp + 0x64], edx
mov eax, dword [rbp - 0x28]
inc eax
mov dword [rbp - 0x28], eax
add r15, 4
add rsi, 0x10
cmp eax, dword [rbx + 0x30]
jl 0x18002c370
mov r15, qword [rbp - 0x60]
mov r11, qword [rbp - 0x58]
mov r14, qword [rbp - 0x78]
mov r13d, 0x100
jmp 0x18002c5c5
mov edx, dword [rsp + 0x64]
mov rsi, qword [rbp - 0x80]
add rbx, 0x110
add rdi, 0x88
sub r11, 1
mov qword [rbp - 0x58], r11
mov r9d, dword [rsp + 0x74]
mov r10d, dword [rsp + 0x60]
jne 0x18002c232
movd xmm1, edx
cvtdq2ps xmm1, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x18002c607
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x18002c60f
movaps xmm0, xmm1
call fcn.180048278
cvttss2si ecx, xmm0
inc ecx
mov dword [r15 + 0x34], 0
mov eax, dword [r15 + 0x10]
test eax, eax
jg 0x18002c660
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x1800de88c]
jb 0x18002c63c
mov eax, 0x1000
jmp 0x18002c660
comiss xmm0, dword [0x1800de888]
jb 0x18002c64c
mov eax, 0x800
jmp 0x18002c660
mov eax, 0x200
mov ecx, 0x400
comiss xmm0, dword [0x1800de884]
cmovae eax, ecx
mov dword [r15 + 0x30], eax
mov qword [rbp + 0x10], 0
xor esi, esi
mov qword [rbp + 0x18], rsi
mov dword [rbp + 0x20], esi
mov qword [rbp + 0x28], rsi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
xor r13d, r13d
mov qword [rbp + 0x48], r13
movss xmm0, dword [r15 + 0x1c]
andps xmm0, xmm9
movss xmm1, dword [r15 + 0x18]
andps xmm1, xmm9
maxss xmm1, xmm0
movd xmm0, dword [r15 + 0x14]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si r14d, xmm0
mov r12d, dword [r15 + 0x30]
lea ecx, [rsi + 0x48]
call fcn.18001e400
mov rdi, rax
mov ebx, r12d
sub ebx, r14d
movsxd rcx, ebx
shl rcx, 4
call fcn.18001e400
mov r9, rax
test rdi, rdi
je 0x18002c728
mov rcx, rdi
test rax, rax
je 0x18002c730
mov dword [rbp + 0x20], r12d
mov rsi, rdi
mov qword [rbp + 0x18], rdi
mov r13, rax
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x2c], r14d
mov dword [rbp + 0x28], r12d
mov dword [rbp + 0x34], 1
mov dword [rbp + 0x38], 1
xor r12d, r12d
mov dword [rbp + 0x30], r12d
mov r8d, 0x8000
sub r8d, r14d
mov dword [rsp + 0x20], ebx
mov edx, ebx
call fcn.1800352e0
jmp 0x18002c738
test r9, r9
je 0x18002c735
mov rcx, r9
call fcn.18001e420
xor r12d, r12d
mov qword [rbp - 0x58], 0
mov rbx, r12
mov qword [rbp - 0x50], rbx
mov edi, dword [r15 + 0x58]
test edi, edi
jle 0x18002c76f
mov eax, edi
cmp edi, 8
mov ecx, 8
cmovl eax, ecx
test eax, eax
jle 0x18002c76f
movsxd rcx, eax
shl rcx, 4
call fcn.18001e400
mov rbx, rax
mov ecx, edi
shl ecx, 4
movsxd r8, ecx
xor edx, edx
mov rcx, rbx
call fcn.18003fa60
mov r9d, r12d
cmp dword [r15 + 0x58], 0
jle 0x18002c7be
mov rdx, r12
lea r8, [rbx + 6]
mov rax, qword [r15 + 0x60]
movzx ecx, word [rax + rdx + 4]
mov word [r8 - 2], cx
mov rax, qword [r15 + 0x60]
movzx ecx, word [rax + rdx + 6]
mov word [r8], cx
inc r9d
lea rdx, [rdx + 0x20]
lea r8, [r8 + 0x10]
cmp r9d, dword [r15 + 0x58]
jl 0x18002c792
mov r8d, edi
mov rdx, rbx
mov rcx, rsi
call fcn.1800354b0
test edi, edi
jle 0x18002c825
mov r8, r12
lea rdx, [rbx + 0xa]
mov r9, rdi
nop word [rax + rax]
cmp dword [rdx + 2], 0
je 0x18002c817
movzx ecx, word [rdx - 2]
mov rax, qword [r15 + 0x60]
mov word [rax + r8 + 8], cx
movzx ecx, word [rdx]
mov rax, qword [r15 + 0x60]
mov word [rax + r8 + 0xa], cx
movzx ecx, word [rdx - 4]
movzx eax, word [rdx]
add ecx, eax
cmp dword [r15 + 0x34], ecx
cmovge ecx, dword [r15 + 0x34]
mov dword [r15 + 0x34], ecx
add r8, 0x20
add rdx, 0x10
sub r9, 1
jne 0x18002c7e0
test rbx, rbx
je 0x18002c833
mov rcx, rbx
call fcn.18001e420
nop
mov edi, dword [rsp + 0x68]
mov r14, qword [rsp + 0x78]
test edi, edi
jle 0x18002c8b1
lea rbx, [r14 + 0xe8]
mov r8d, dword [rbx]
test r8d, r8d
je 0x18002c8a0
mov rdx, qword [rbx - 0x20]
mov rcx, rsi
call fcn.1800354b0
mov r8d, r12d
cmp dword [rbx], 0
jle 0x18002c8a0
mov rdx, r12
nop word [rax + rax]
mov rax, qword [rbx - 0x20]
cmp dword [rdx + rax + 0xc], 0
je 0x18002c894
movzx ecx, word [rdx + rax + 0xa]
movzx eax, word [rdx + rax + 6]
add ecx, eax
cmp dword [r15 + 0x34], ecx
cmovge ecx, dword [r15 + 0x34]
mov dword [r15 + 0x34], ecx
inc r8d
add rdx, 0x10
cmp r8d, dword [rbx]
jl 0x18002c870
add rbx, 0x110
sub rdi, 1
jne 0x18002c847
mov edi, dword [rsp + 0x68]
mov eax, dword [r15 + 0x34]
test byte [r15 + 4], 1
jne 0x18002c8e1
lea ecx, [rax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
lea ecx, [rax + 1]
mov dword [r15 + 0x34], ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss xmm9, dword [0x180063874]
movaps xmm2, xmm9
divss xmm2, xmm0
mov eax, dword [r15 + 0x30]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm9
divss xmm1, xmm0
movss dword [r15 + 0x38], xmm1
movss dword [r15 + 0x3c], xmm2
imul ecx, eax
movsxd rcx, ecx
call fcn.18001e400
mov qword [r15 + 0x20], rax
mov ecx, dword [r15 + 0x34]
imul ecx, dword [r15 + 0x30]
movsxd r8, ecx
xor edx, edx
mov rcx, rax
call fcn.18003fa60
mov rax, qword [r15 + 0x20]
mov qword [rbp + 0x40], rax
mov eax, dword [r15 + 0x34]
mov dword [rbp + 0x24], eax
test edi, edi
jle 0x18002cab6
mov r13d, edi
nop
mov rbx, qword [r15 + 0x70]
cmp dword [r14 + 0xe8], 0
je 0x18002ca8f
lea r8, [r14 + 0xa0]
mov rax, qword [r14 + 0xc8]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov rdx, r14
lea rcx, [rbp + 0x10]
call fcn.180035e80
movss xmm1, dword [r12 + rbx + 0x50]
ucomiss xmm1, xmm9
jp 0x18002c9aa
je 0x18002ca84
xor r8d, r8d
lea r9, [rbp + 0x60]
mov r15d, 0x100
nop word [rax + rax]
mov eax, r8d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm1
cvttss2si rcx, xmm0
mov edx, 0xff
movzx eax, cl
cmp ecx, edx
cmovbe edx, eax
mov byte [r9], dl
inc r8d
lea r9, [r9 + 1]
cmp r8d, r15d
jb 0x18002c9c0
mov rdi, qword [r14 + 0xc8]
xor esi, esi
cmp dword [r14 + 0xe8], esi
mov r15, qword [rbp - 0x60]
jle 0x18002ca84
add rdi, 6
nop word [rax + rax]
cmp dword [rdi + 6], 0
je 0x18002ca75
movsxd rbx, dword [r15 + 0x30]
movzx r11d, word [rdi]
movzx eax, word [rdi + 4]
imul eax, ebx
cdqe
movzx r10d, word [rdi + 2]
add rax, qword [r15 + 0x20]
add r10, rax
movzx r9d, word [rdi - 2]
test r11d, r11d
je 0x18002ca75
mov r8, r10
neg r8
test r9, r9
je 0x18002ca67
mov rdx, r10
nop dword [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [rbp + rax + 0x60]
mov byte [rdx], cl
lea rdx, [rdx + 1]
lea rax, [r8 + rdx]
cmp rax, r9
jl 0x18002ca50
dec r11d
add r10, rbx
sub r8, rbx
test r11d, r11d
jg 0x18002ca43
inc esi
add rdi, 0x10
cmp esi, dword [r14 + 0xe8]
jl 0x18002ca10
mov qword [r14 + 0xc8], 0
add r12, 0x88
add r14, 0x110
sub r13, 1
jne 0x18002c960
mov r13, qword [rbp + 0x48]
mov rsi, qword [rbp + 0x18]
mov edi, dword [rsp + 0x68]
xor r12d, r12d
mov rcx, r13
call fcn.18001e420
mov rcx, rsi
call fcn.18001e420
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18002caea
mov qword [rbp - 0x10], 0
mov rcx, rax
call fcn.18001e420
mov rax, r12
mov qword [rbp - 0x80], rax
mov qword [rbp - 8], rax
test edi, edi
jle 0x18002cf1f
mov r13, r12
mov rsi, qword [rsp + 0x78]
add rsi, 8
mov eax, edi
mov qword [rbp - 0x58], rax
mov r14d, edi
mov qword [rbp - 0x60], rax
movss xmm8, dword [0x180063870]
nop dword [rax]
nop dword [rax + rax]
cmp dword [rsi + 0xe0], 0
je 0x18002cecc
mov rdi, qword [r15 + 0x70]
add rdi, r13
mov rbx, qword [rdi + 0x80]
movsxd r10, dword [rsi + 0x1c]
mov r9, qword [rsi]
movzx r8d, byte [r10 + r9 + 5]
movzx edx, byte [r10 + r9 + 4]
mov ecx, 0x100
movsx ecx, cx
imul edx, ecx
add r8w, dx
movsx r11d, r8w
movzx r8d, byte [r10 + r9 + 7]
movzx edx, byte [r10 + r9 + 6]
mov ecx, 0x100
movsx ecx, cx
imul edx, ecx
add r8w, dx
movsx ecx, r8w
mov eax, r11d
sub eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm2, dword [rdi + 0x14]
divss xmm2, xmm0
movd xmm1, r11d
cvtdq2ps xmm1, xmm1
mov eax, 0xffffffff
comiss xmm1, xmm11
mov edx, 1
cmova eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mov eax, 0xffffffff
comiss xmm1, xmm11
cmova eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm7, eax
cvtdq2ps xmm7, xmm7
cmp byte [rdi + 0x48], 0
jne 0x18002cc86
mov qword [rbx + 0x10], 0
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x18002cc21
mov qword [rbx + 0x28], 0
call fcn.18001e420
mov qword [rbx + 0x30], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x18002cc3a
mov qword [rbx], 0
call fcn.18001e420
mov qword [rbx + 8], r12
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18002cc54
mov qword [rbx + 0x18], 0
call fcn.18001e420
mov qword [rbx + 0x20], r12
mov qword [rbx + 0x38], r12
mov qword [rbx + 0x48], r12
mov byte [rbx + 0x70], 1
mov qword [rbx + 0x64], 0
mov dword [rbx + 0x6c], r12d
mov eax, dword [rdi + 0x14]
mov dword [rbx + 0x14], eax
mov qword [rbx + 0x50], rdi
mov qword [rbx + 0x48], r15
movss dword [rbx + 0x64], xmm6
movss dword [rbx + 0x68], xmm7
jmp 0x18002cc8b
movss xmm6, dword [rbx + 0x64]
inc word [rbx + 0x58]
movss xmm15, dword [rdi + 0x2c]
addss xmm6, xmm8
cvttss2si eax, xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rdi + 0x30]
movss dword [rbp - 0x70], xmm0
mov dword [rsp + 0x60], r12d
cmp dword [rsi + 0xe0], 0
jle 0x18002cecc
mov r14, r12
mov rax, qword [rsi + 0x100]
mov edx, dword [r12 + rax]
mov rcx, qword [rsi + 0xc8]
movss xmm0, dword [rcx + r14 + 0x10]
movss xmm14, dword [rdi + 0x40]
comiss xmm14, xmm0
ja 0x18002ccf4
movss xmm14, dword [rdi + 0x44]
minss xmm14, xmm0
movaps xmm13, xmm15
ucomiss xmm0, xmm14
jp 0x18002cd00
je 0x18002cd27
movaps xmm13, xmm14
subss xmm13, xmm0
mulss xmm13, xmm8
cmp byte [rdi + 0x20], 0
je 0x18002cd22
cvttss2si eax, xmm13
movd xmm13, eax
cvtdq2ps xmm13, xmm13
addss xmm13, xmm15
movd xmm0, dword [r15 + 0x30]
cvtdq2ps xmm0, xmm0
movaps xmm7, xmm9
divss xmm7, xmm0
movd xmm1, dword [r15 + 0x34]
cvtdq2ps xmm1, xmm1
movaps xmm3, xmm9
divss xmm3, xmm1
movss xmm10, dword [r15 + 0x18]
movaps xmm12, xmm11
minss xmm12, xmm10
movss xmm5, dword [r15 + 0x1c]
minss xmm11, xmm5
xorps xmm0, xmm0
maxss xmm10, xmm0
maxss xmm5, xmm0
movss xmm1, dword [r15 + 0x3c]
movss xmm2, dword [r15 + 0x38]
movzx eax, word [rcx + r14 + 6]
movd xmm9, eax
cvtdq2ps xmm9, xmm9
mulss xmm9, xmm3
movaps xmm0, xmm1
mulss xmm0, xmm5
addss xmm9, xmm0
movzx eax, word [rcx + r14 + 4]
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm7
movaps xmm0, xmm2
mulss xmm0, xmm10
addss xmm8, xmm0
movzx eax, word [rcx + r14 + 2]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm3
mulss xmm1, xmm11
addss xmm6, xmm1
movzx eax, word [rcx + r14]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
mulss xmm4, xmm7
mulss xmm2, xmm12
addss xmm4, xmm2
movss xmm1, dword [rcx + r14 + 0x18]
xorps xmm2, xmm2
addss xmm1, xmm2
addss xmm1, dword [rbp - 0x70]
addss xmm1, xmm5
movss xmm0, dword [rcx + r14 + 0x14]
addss xmm0, xmm2
addss xmm0, xmm13
divss xmm10, dword [0x1800dad0c]
addss xmm0, xmm10
movss xmm3, dword [rcx + r14 + 0xc]
addss xmm3, xmm2
addss xmm3, dword [rbp - 0x70]
addss xmm3, xmm11
movss xmm2, dword [rcx + r14 + 8]
xorps xmm11, xmm11
addss xmm2, xmm11
addss xmm2, xmm13
divss xmm12, dword [0x1800dad0c]
addss xmm2, xmm12
movss dword [rsp + 0x50], xmm14
movss dword [rsp + 0x48], xmm9
movss dword [rsp + 0x40], xmm8
movss dword [rsp + 0x38], xmm6
movss dword [rsp + 0x30], xmm4
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
mov rcx, rbx
call fcn.180029240
mov r8d, dword [rsp + 0x60]
inc r8d
mov dword [rsp + 0x60], r8d
add r12, 4
add r14, 0x1c
cmp r8d, dword [rsi + 0xe0]
movss xmm8, dword [0x180063870]
movss xmm9, dword [0x180063874]
jl 0x18002ccc4
mov r14, qword [rbp - 0x60]
xor r12d, r12d
add rsi, 0x110
add r13, 0x88
sub r14, 1
mov qword [rbp - 0x60], r14
jne 0x18002cb20
mov rbx, qword [rsp + 0x78]
add rbx, 0xf8
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x18002cf03
call fcn.18001e420
nop
mov rcx, qword [rbx]
test rcx, rcx
je 0x18002cf11
call fcn.18001e420
nop
add rbx, 0x110
sub qword [rbp - 0x58], 1
jne 0x18002cef4
mov rcx, r15
call fcn.18002b450
mov bl, 1
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x18002cf38
call fcn.18001e420
nop
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x18002cf47
call fcn.18001e420
nop
mov r13, qword [rbp - 0x68]
test r13, r13
je 0x18002cf59
mov rcx, r13
call fcn.18001e420
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18002cf6c
mov rcx, rax
call fcn.18001e420
nop
movzx eax, bl
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.18003d080
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret