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

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x8f8
mov qword [rsp + 0xb0], 0xfffffffffffffffe
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 [0x18013a210]
xor rax, rsp
mov qword [rsp + 0x840], rax
mov ebp, r9d
mov dword [rsp + 0x88], r9d
mov ebx, r8d
mov dword [rsp + 0x54], ebx
mov esi, edx
mov dword [rsp + 0x3c], edx
mov rdi, rcx
mov rcx, qword [rsp + 0x940]
mov qword [rsp + 0x98], rcx
test edx, edx
je 0x18008cecf
test ebx, ebx
je 0x18008cecf
mov eax, dword [rdi + 0x14]
cmp eax, edx
jne 0x18008bf62
cmp dword [rdi + 0x18], ebx
jne 0x18008bf62
test rcx, rcx
je 0x18008bf5b
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov rdx, rdi
call fcn.180080c10
mov al, 1
jmp 0x18008ced1
movd xmm13, eax
cvtdq2ps xmm13, xmm13
movd xmm0, esi
cvtdq2ps xmm0, xmm0
divss xmm13, xmm0
movd xmm7, dword [rdi + 0x18]
cvtdq2ps xmm7, xmm7
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
divss xmm7, xmm0
movss dword [rsp + 0x58], xmm7
xor edx, edx
lea rcx, [rsp + 0xc0]
call fcn.1800800e0
nop
mov rdx, rdi
lea rcx, [rsp + 0xc0]
call fcn.1800802a0
mov rcx, rdi
call fcn.180081010
movzx r9d, word [rdi + 0x1e]
mov dword [rsp + 0x20], eax
mov r8d, ebx
mov edx, esi
lea rcx, [rsp + 0xc0]
call fcn.1800808e0
mov rcx, rdi
call fcn.180082fd0
mov rdx, rax
mov r8d, 0x100
lea rcx, [rsp + 0xc0]
call fcn.180083870
lea rcx, [rsp + 0xc0]
call fcn.1800810d0
test al, al
jne 0x18008c052
lea rcx, [rsp + 0xc0]
call fcn.180081270
add rdi, 0x58
movzx ecx, byte [rax]
mov byte [rdi], cl
inc rax
inc rdi
test cl, cl
jne 0x18008c013
lea rax, vtable.CxImage.0
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0xc0]
call fcn.180080200
lea rcx, [rsp + 0xc0]
call fcn.180080110
xor al, al
jmp 0x18008ced1
mov ecx, ebp
sub ecx, 1
je 0x18008cc96
cmp ecx, 1
je 0x18008c9fc
mov ecx, dword [rdi + 0x14]
cmp ecx, esi
jle 0x18008c65c
cmp dword [rdi + 0x18], ebx
jle 0x18008c65c
cmp word [rdi + 0x1e], 0x18
jne 0x18008c65c
mov rsi, qword [rsp + 0xfc]
mov qword [rsp + 0x70], rsi
mov eax, dword [rsp + 0x3c]
lea eax, [rax + rax*2]
mov dword [rsp + 0x58], eax
add eax, 3
movsxd rbx, eax
mov eax, 4
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1800bee60
mov rbp, rax
mov qword [rsp + 0x60], rax
mov eax, 4
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1800bee60
mov qword [rsp + 0x68], rax
movaps xmm0, xmm13
movss xmm6, dword [0x1800f2568]
mulss xmm0, xmm6
mulss xmm0, xmm7
cvttss2si eax, xmm0
mov dword [rsp + 0x4c], eax
movsxd rcx, dword [rsp + 0x3c]
lea rbx, [rcx + rcx*2]
shl rbx, 2
mov r8, rbx
xor edx, edx
mov rcx, rbp
call fcn.1800c1250
mov r8, rbx
xor edx, edx
mov rcx, qword [rsp + 0x68]
call fcn.1800c1250
xor ebp, ebp
mov r11d, ebp
mov dword [rsp + 0x30], ebp
movaps xmm2, xmm7
movss xmm3, dword [0x1800f2128]
subss xmm2, xmm3
mov r9d, ebp
mov dword [rsp + 0x50], ebp
cmp dword [rdi + 0x18], ebp
jle 0x18008c610
mov eax, ebp
mov dword [rsp + 0x40], eax
mov rbx, qword [rsp + 0x60]
nop
cdq
idiv dword [rdi + 0x18]
mov dword [rdi + 0x158], eax
cmp dword [rdi + 0x15c], 0
jne 0x18008c615
mov r10d, dword [rdi + 0x38]
imul r10d, r9d
add r10, qword [rdi + 0x3c]
mov rax, rbp
mov qword [rsp + 0x78], rax
mov edx, ebp
mov dword [rsp + 0x44], edx
movaps xmm1, xmm13
subss xmm1, xmm3
movd xmm0, r9d
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x18008c284
mov r11d, ebp
cmp dword [rdi + 0x14], 0
jle 0x18008c5ec
lea r9, [rbx + 4]
nop dword [rax + rax]
movd xmm0, r11d
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18008c1fe
movzx eax, byte [r10]
imul eax, eax, 0x3e8
add dword [r9 - 4], eax
movzx eax, byte [r10 + 1]
imul eax, eax, 0x3e8
add dword [r9], eax
movzx eax, byte [r10 + 2]
imul eax, eax, 0x3e8
add dword [r9 + 4], eax
add r10, 3
jmp 0x18008c268
subss xmm0, xmm1
mulss xmm0, xmm6
cvttss2si r8d, xmm0
mov edx, 0x3e8
sub edx, r8d
movzx eax, byte [r10]
imul eax, edx
add dword [r9 - 4], eax
movzx eax, byte [r10]
imul eax, r8d
add dword [r9 + 8], eax
movzx eax, byte [r10 + 1]
imul eax, edx
add dword [r9], eax
movzx eax, byte [r10 + 1]
imul eax, r8d
add dword [r9 + 0xc], eax
movzx eax, byte [r10 + 2]
imul eax, edx
add dword [r9 + 4], eax
movzx eax, byte [r10 + 2]
imul eax, r8d
add dword [r9 + 0x10], eax
add r10, 3
add r9, 0xc
addss xmm1, xmm13
inc r11d
cmp r11d, dword [rdi + 0x14]
jl 0x18008c1c0
mov r9d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x30]
jmp 0x18008c5f1
subss xmm0, xmm2
mulss xmm0, xmm6
cvttss2si r8d, xmm0
mov dword [rsp + 0x48], r8d
mov ebx, ebp
cmp dword [rdi + 0x14], 0
jle 0x18008c56b
mov ebp, 0x3e8
sub ebp, r8d
mov rcx, qword [rsp + 0x68]
lea rsi, [rcx + 8]
mov rax, qword [rsp + 0x60]
lea r11, [rax + 4]
sub rcx, rax
mov qword [rsp + 0x80], rcx
nop word [rax + rax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18008c32f
movzx eax, byte [r10]
imul eax, ebp
add dword [r11 - 4], eax
movzx eax, byte [r10]
imul eax, r8d
add dword [rsi - 8], eax
movzx eax, byte [r10 + 1]
imul eax, ebp
add dword [r11], eax
movzx eax, byte [r10 + 1]
imul eax, r8d
add dword [rcx + r11], eax
movzx eax, byte [r10 + 2]
imul eax, ebp
add dword [r11 + 4], eax
movzx eax, byte [r10 + 2]
imul eax, r8d
add dword [rsi], eax
add r10, 3
mov rax, qword [rsp + 0x78]
jmp 0x18008c54f
subss xmm0, xmm1
mulss xmm0, xmm6
cvttss2si r9d, xmm0
mov r8d, 0x3e8
sub r8d, r9d
movzx ecx, byte [r10]
imul ecx, r8d
imul ecx, ebp
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [r11 - 4], edx
mov eax, dword [r11 - 4]
cdq
idiv dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x70]
mov byte [rcx], al
movzx ecx, byte [r10]
imul ecx, r8d
imul ecx, dword [rsp + 0x48]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [rsi - 8], edx
movzx ecx, byte [r10]
imul ecx, ebp
imul ecx, r9d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [r11 + 8], edx
movzx ecx, byte [r10]
imul ecx, dword [rsp + 0x48]
imul ecx, r9d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rsp + 0x80]
mov dword [r11 + rax + 8], edx
movzx ecx, byte [r10 + 1]
imul ecx, r8d
imul ecx, ebp
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [r11], edx
mov eax, dword [r11]
cdq
idiv dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x70]
mov byte [rcx + 1], al
movzx ecx, byte [r10 + 1]
imul ecx, r8d
imul ecx, dword [rsp + 0x48]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rsp + 0x80]
add dword [rax + r11], edx
movzx ecx, byte [r10 + 1]
imul ecx, ebp
imul ecx, r9d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [r11 + 0xc], edx
movzx ecx, byte [r10 + 1]
imul ecx, dword [rsp + 0x48]
imul ecx, r9d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsi + 8], edx
movzx ecx, byte [r10 + 2]
imul ecx, r8d
imul ecx, ebp
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [r11 + 4], edx
mov eax, dword [r11 + 4]
cdq
idiv dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x70]
mov byte [rcx + 2], al
movzx ecx, byte [r10 + 2]
imul ecx, r8d
mov r8d, dword [rsp + 0x48]
imul ecx, r8d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [rsi], edx
movzx ecx, byte [r10 + 2]
imul ecx, ebp
imul ecx, r9d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add dword [r11 + 0x10], edx
movzx ecx, byte [r10 + 2]
imul ecx, r8d
imul ecx, r9d
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsi + 0xc], edx
add qword [rsp + 0x70], 3
add r10, 3
mov rax, qword [rsp + 0x78]
add rax, 3
mov qword [rsp + 0x78], rax
add r11, 0xc
add rsi, 0xc
addss xmm1, xmm13
mov edx, dword [rsp + 0x44]
inc edx
mov dword [rsp + 0x44], edx
mov rcx, qword [rsp + 0x80]
inc ebx
cmp ebx, dword [rdi + 0x14]
jl 0x18008c2d0
xor ebp, ebp
mov rsi, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x30]
cmp edx, dword [rsp + 0x3c]
jge 0x18008c5a3
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx + rax*4]
cdq
mov r10d, dword [rsp + 0x4c]
idiv r10d
mov byte [rsi], al
mov r8, qword [rsp + 0x78]
mov eax, dword [rcx + r8*4 + 4]
cdq
idiv r10d
mov byte [rsi + 1], al
mov eax, dword [rcx + r8*4 + 8]
cdq
idiv r10d
mov byte [rsi + 2], al
jmp 0x18008c5a8
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], rax
xor eax, eax
mov dword [rcx], eax
mov dword [rcx + 4], eax
mov dword [rcx + 8], eax
inc r11d
mov dword [rsp + 0x30], r11d
mov esi, r11d
imul esi, dword [rsp + 0xf8]
add rsi, qword [rsp + 0xfc]
mov qword [rsp + 0x70], rsi
addss xmm2, xmm7
mov rbx, qword [rsp + 0x60]
jmp 0x18008c5f1
mov r11d, dword [rsp + 0x30]
inc r9d
mov dword [rsp + 0x50], r9d
mov eax, dword [rsp + 0x40]
add eax, 0x64
mov dword [rsp + 0x40], eax
cmp r9d, dword [rdi + 0x18]
jl 0x18008c160
jmp 0x18008c615
mov rbx, qword [rsp + 0x60]
cmp r11d, dword [rsp + 0x54]
jge 0x18008c645
mov eax, dword [rsp + 0x58]
test eax, eax
jle 0x18008c645
mov rcx, rbx
mov r9, rax
mov r8d, dword [rsp + 0x4c]
nop
mov eax, dword [rcx]
cdq
idiv r8d
mov byte [rsi], al
inc rsi
add rcx, 4
sub r9, 1
jne 0x18008c630
mov rcx, rbx
call fcn.1800bd964
mov rcx, qword [rsp + 0x68]
call fcn.1800bd964
jmp 0x18008cd46
dec ecx
mov dword [rsp + 0x68], ecx
mov r9d, dword [rdi + 0x18]
dec r9d
mov dword [rsp + 0x70], r9d
xor ebp, ebp
mov r8d, ebp
mov dword [rsp + 0x44], ebp
test ebx, ebx
jle 0x18008cd46
mov eax, ebp
mov dword [rsp + 0x60], eax
nop word [rax + rax]
cdq
idiv ebx
mov dword [rdi + 0x158], eax
cmp dword [rdi + 0x15c], 0
jne 0x18008cd46
movd xmm8, r8d
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm7
cvttss2si eax, xmm8
mov dword [rsp + 0x78], eax
lea r11d, [rax + 1]
cmp r9d, r11d
cmovl r11d, r9d
mov dword [rsp + 0x40], r11d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm8, xmm0
test esi, esi
jle 0x18008c9db
nop word [rax + rax]
movd xmm7, ebp
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm13
cvttss2si esi, xmm7
lea ebx, [rsi + 1]
cmp ecx, ebx
cmovl ebx, ecx
movd xmm0, esi
cvtdq2ps xmm0, xmm0
subss xmm7, xmm0
cmp dword [rdi + 0x30], 0
je 0x18008c813
mov r8d, eax
mov edx, esi
mov rcx, rdi
call fcn.180083060
movzx r8d, al
lea rdx, [rsp + 0xa4]
mov rcx, rdi
call fcn.180082ff0
mov ecx, dword [rax]
mov dword [rsp + 0x50], ecx
mov r8d, dword [rsp + 0x78]
mov edx, ebx
mov rcx, rdi
call fcn.180083060
movzx r8d, al
lea rdx, [rsp + 0x90]
mov rcx, rdi
call fcn.180082ff0
mov ecx, dword [rax]
mov dword [rsp + 0x30], ecx
mov r8d, dword [rsp + 0x40]
mov edx, esi
mov rcx, rdi
call fcn.180083060
movzx r8d, al
lea rdx, [rsp + 0x94]
mov rcx, rdi
call fcn.180082ff0
mov ecx, dword [rax]
mov dword [rsp + 0x4c], ecx
mov r8d, dword [rsp + 0x40]
mov edx, ebx
mov rcx, rdi
call fcn.180083060
movzx r8d, al
lea rdx, [rsp + 0x8c]
mov rcx, rdi
call fcn.180082ff0
mov ecx, dword [rax]
mov dword [rsp + 0x48], ecx
movzx esi, byte [rsp + 0x52]
movzx eax, byte [rsp + 0x51]
mov byte [rsp + 0x36], al
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x37], al
movzx ebx, byte [rsp + 0x32]
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x38], al
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x35], al
movzx r8d, byte [rsp + 0x4e]
movzx r9d, byte [rsp + 0x4d]
movzx r10d, byte [rsp + 0x4c]
movzx edx, byte [rsp + 0x4a]
movzx r11d, byte [rsp + 0x49]
movzx eax, cl
mov byte [rsp + 0x34], cl
jmp 0x18008c883
mov r9d, dword [rdi + 0x38]
mov r10, qword [rdi + 0x3c]
imul eax, r9d
mov ecx, eax
add rcx, r10
lea eax, [rsi + rsi*2]
movsxd r8, eax
lea rax, [r8 + rcx]
mov dl, byte [rax]
mov byte [rsp + 0x37], dl
mov dl, byte [rax + 1]
mov byte [rsp + 0x36], dl
mov sil, byte [rax + 2]
lea eax, [rbx + rbx*2]
movsxd rdx, eax
lea rax, [rdx + rcx]
mov cl, byte [rax]
mov byte [rsp + 0x35], cl
mov cl, byte [rax + 1]
mov byte [rsp + 0x38], cl
mov bl, byte [rax + 2]
mov ecx, r11d
imul ecx, r9d
add rcx, r10
lea rax, [rcx + r8]
mov r10b, byte [rax]
mov r9b, byte [rax + 1]
mov r8b, byte [rax + 2]
lea rax, [rcx + rdx]
mov cl, byte [rax]
mov byte [rsp + 0x34], cl
mov r11b, byte [rax + 1]
mov dl, byte [rax + 2]
movzx ecx, sil
movzx eax, r8b
sub eax, ecx
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm6, xmm0
movzx ecx, byte [rsp + 0x36]
movzx eax, r9b
sub eax, ecx
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm5, xmm8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm5, xmm0
movzx ecx, byte [rsp + 0x37]
movzx eax, r10b
sub eax, ecx
movd xmm4, eax
cvtdq2ps xmm4, xmm4
mulss xmm4, xmm8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm4, xmm0
movzx ecx, bl
movzx eax, dl
sub eax, ecx
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm3, xmm0
movzx ecx, byte [rsp + 0x38]
movzx eax, r11b
sub eax, ecx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm2, xmm0
movzx ecx, byte [rsp + 0x35]
movzx eax, byte [rsp + 0x34]
sub eax, ecx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm8
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
subss xmm3, xmm6
mulss xmm3, xmm7
addss xmm3, xmm6
cvttss2si rdx, xmm3
subss xmm2, xmm5
mulss xmm2, xmm7
addss xmm2, xmm5
cvttss2si rcx, xmm2
subss xmm1, xmm4
mulss xmm1, xmm7
addss xmm1, xmm4
cvttss2si rax, xmm1
movzx r9d, cl
shl r9d, 8
movzx eax, al
shl eax, 0x10
or r9d, eax
movzx eax, dl
or r9d, eax
mov r8d, dword [rsp + 0x44]
mov edx, ebp
lea rcx, [rsp + 0xc0]
call fcn.180085e80
inc ebp
mov esi, dword [rsp + 0x3c]
cmp ebp, esi
mov r11d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x68]
jl 0x18008c6f0
movss xmm7, dword [rsp + 0x58]
xor ebp, ebp
mov r8d, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x70]
mov ebx, dword [rsp + 0x54]
inc r8d
mov dword [rsp + 0x44], r8d
mov eax, dword [rsp + 0x60]
add eax, 0x64
mov dword [rsp + 0x60], eax
cmp r8d, ebx
jl 0x18008c690
jmp 0x18008cd46
xor ebp, ebp
mov ecx, ebp
mov dword [rsp + 0x30], ecx
test ebx, ebx
jle 0x18008cd46
mov eax, ebp
mov dword [rsp + 0x68], eax
or rbx, 0xffffffffffffffff
movss xmm15, dword [0x1800f1fa0]
xorps xmm14, xmm14
cdq
idiv dword [rsp + 0x54]
mov dword [rdi + 0x158], eax
cmp dword [rdi + 0x15c], ebp
jne 0x18008cd46
movd xmm12, ecx
cvtdq2ps xmm12, xmm12
mulss xmm12, xmm7
subss xmm12, xmm15
movaps xmm0, xmm12
call fcn.1800c1bbc
cvttss2si eax, xmm0
mov dword [rsp + 0x70], eax
subss xmm12, xmm0
mov eax, ebp
mov dword [rsp + 0x40], eax
test esi, esi
jle 0x18008cc72
mov qword [rsp + 0x80], rbp
nop dword [rax]
movd xmm10, eax
cvtdq2ps xmm10, xmm10
mulss xmm10, xmm13
subss xmm10, xmm15
movaps xmm0, xmm10
call fcn.1800c1bbc
cvttss2si eax, xmm0
mov dword [rsp + 0x78], eax
subss xmm10, xmm0
movaps xmm7, xmm14
movaps xmm8, xmm14
movaps xmm9, xmm14
mov dword [rsp + 0x60], ebx
nop dword [rax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
subss xmm0, xmm12
call fcn.18008d3e0
movaps xmm11, xmm0
mov eax, dword [rsp + 0x70]
lea esi, [rbx + rax]
test esi, esi
cmovs esi, ebp
mov eax, dword [rdi + 0x18]
cmp esi, eax
jl 0x18008caeb
lea esi, [rax - 1]
or ebx, 0xffffffff
nop
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm10
subss xmm0, xmm1
call fcn.18008d3e0
movaps xmm6, xmm0
mulss xmm6, xmm11
mov eax, dword [rsp + 0x78]
lea ecx, [rbx + rax]
test ecx, ecx
cmovs ecx, ebp
mov eax, dword [rdi + 0x14]
cmp ecx, eax
jl 0x18008cb22
lea ecx, [rax - 1]
cmp dword [rdi + 0x30], ebp
je 0x18008cb5a
mov byte [rsp + 0x20], 1
mov r9d, esi
mov r8d, ecx
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call fcn.180083210
mov ecx, dword [rax]
mov dword [rsp + 0x44], ecx
movzx eax, byte [rsp + 0x46]
movzx ecx, byte [rsp + 0x45]
movzx r8d, byte [rsp + 0x44]
jmp 0x18008cb76
mov edx, dword [rdi + 0x38]
imul edx, esi
lea eax, [rcx + rcx*2]
movsxd rcx, eax
add rdx, rcx
add rdx, qword [rdi + 0x3c]
mov r8b, byte [rdx]
mov cl, byte [rdx + 1]
mov al, byte [rdx + 2]
movzx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
addss xmm9, xmm0
movzx eax, cl
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm6
addss xmm8, xmm1
movzx eax, r8b
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
addss xmm7, xmm0
inc ebx
cmp ebx, 3
jl 0x18008caf0
mov ebx, dword [rsp + 0x60]
inc ebx
mov dword [rsp + 0x60], ebx
cmp ebx, 3
jl 0x18008cac0
cmp dword [rdi + 0x30], ebp
je 0x18008cc10
cvttss2si rax, xmm8
movzx r9d, al
shl r9d, 8
cvttss2si rax, xmm7
movzx ecx, al
shl ecx, 0x10
or r9d, ecx
cvttss2si rax, xmm9
movzx ecx, al
or r9d, ecx
mov r8d, dword [rsp + 0x30]
mov edx, dword [rsp + 0x40]
lea rcx, [rsp + 0xc0]
call fcn.180085e80
jmp 0x18008cc43
mov ecx, dword [rsp + 0xf8]
imul ecx, dword [rsp + 0x30]
add rcx, qword [rsp + 0x80]
add rcx, qword [rsp + 0xfc]
cvttss2si rax, xmm7
mov byte [rcx], al
cvttss2si rax, xmm8
mov byte [rcx + 1], al
cvttss2si rax, xmm9
mov byte [rcx + 2], al
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
add qword [rsp + 0x80], 3
mov esi, dword [rsp + 0x3c]
cmp eax, esi
mov rbx, 0xffffffffffffffff
jl 0x18008ca80
movss xmm7, dword [rsp + 0x58]
or rbx, rbx
mov ecx, dword [rsp + 0x30]
inc ecx
mov dword [rsp + 0x30], ecx
mov eax, dword [rsp + 0x68]
add eax, 0x64
mov dword [rsp + 0x68], eax
cmp ecx, dword [rsp + 0x54]
jl 0x18008ca23
jmp 0x18008cd46
xor ebp, ebp
mov esi, ebp
test ebx, ebx
jle 0x18008cd46
mov eax, ebp
mov dword [rsp + 0x58], eax
nop dword [rax + rax]
cdq
idiv ebx
mov dword [rdi + 0x158], eax
cmp dword [rdi + 0x15c], 0
jne 0x18008cd46
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
mov ebx, ebp
cmp dword [rsp + 0x3c], 0
jle 0x18008cd2d
cvttss2si ebp, xmm0
nop
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm13
cvttss2si r8d, xmm0
mov byte [rsp + 0x20], 1
mov r9d, ebp
lea rdx, [rsp + 0xa8]
mov rcx, rdi
call fcn.180083210
mov byte [rsp + 0x20], 0
mov r9d, dword [rax]
mov r8d, esi
mov edx, ebx
lea rcx, [rsp + 0xc0]
call fcn.180085c90
inc ebx
cmp ebx, dword [rsp + 0x3c]
jl 0x18008cce0
xor ebp, ebp
inc esi
mov eax, dword [rsp + 0x58]
add eax, 0x64
mov dword [rsp + 0x58], eax
mov ebx, dword [rsp + 0x54]
cmp esi, ebx
jl 0x18008ccb0
mov rcx, rdi
call fcn.180085eb0
lea rbx, vtable.CxImage.0
test al, al
je 0x18008ce76
mov esi, dword [rsp + 0x88]
cmp esi, 1
jne 0x18008ce00
lea rcx, [rsp + 0xc0]
call fcn.180085ec0
mov esi, ebp
cmp dword [rsp + 0x54], 0
jle 0x18008ce76
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x54]
nop
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
mov ebx, ebp
test eax, eax
jle 0x18008cdf1
cvttss2si ebp, xmm0
nop word [rax + rax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm13
cvttss2si edx, xmm0
mov r8d, ebp
mov rcx, rdi
call fcn.180086190
movzx r9d, al
mov r8d, esi
mov edx, ebx
lea rcx, [rsp + 0xc0]
call fcn.180086120
inc ebx
mov eax, dword [rsp + 0x3c]
cmp ebx, eax
jl 0x18008cdb0
xor ebp, ebp
mov ecx, dword [rsp + 0x54]
inc esi
cmp esi, ecx
jl 0x18008cd90
lea rbx, vtable.CxImage.0
jmp 0x18008ce76
xor edx, edx
lea rcx, [rsp + 0x480]
call fcn.1800800e0
nop
lea rdx, [rsp + 0x480]
mov rcx, rdi
call fcn.1800864a0
mov qword [rsp + 0x20], rbp
mov r9d, esi
mov r8d, dword [rsp + 0x54]
mov edx, dword [rsp + 0x3c]
lea rcx, [rsp + 0x480]
call fcn.18008be90
lea rdx, [rsp + 0x480]
lea rcx, [rsp + 0xc0]
call fcn.180086030
nop
mov qword [rsp + 0x480], rbx
lea rcx, [rsp + 0x480]
call fcn.180080200
lea rcx, [rsp + 0x480]
call fcn.180080110
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x18008ce95
mov r8b, 1
lea rdx, [rsp + 0xc0]
call fcn.180080420
jmp 0x18008cea9
mov r8b, 1
lea rdx, [rsp + 0xc0]
mov rcx, rdi
call fcn.180080420
nop
mov qword [rsp + 0xc0], rbx
lea rcx, [rsp + 0xc0]
call fcn.180080200
lea rcx, [rsp + 0xc0]
call fcn.180080110
mov al, 1
jmp 0x18008ced1
xor al, al
mov rcx, qword [rsp + 0x840]
xor rcx, rsp
call fcn.1800bd980
lea r11, [rsp + 0x8f8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
movaps xmm15, xmmword [r11 - 0xa8]
mov rsp, r11
pop rdi
pop rsi
pop rbp
pop rbx
ret