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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x290
lea rbp, [rsp + 0xc0]
mov eax, dword [rcx + 0xc]
mov r10d, r8d
mov r14d, dword [rcx + 8]
mov r8, rcx
mov r11d, dword [rbp + 0x230]
xor ecx, ecx
mov qword [rbp + 0x220], rbx
mov r12, r9
movaps xmmword [rbp + 0x1c0], xmm6
mov rsi, rdx
mov rdi, qword [r8]
movaps xmmword [rbp + 0x1b0], xmm7
movaps xmmword [rbp + 0x1a0], xmm8
movaps xmmword [rbp + 0x190], xmm9
xorps xmm9, xmm9
movsxd r13, dword [rdi + 4]
mov ebx, dword [rdi + 8]
movaps xmmword [rbp + 0x180], xmm10
xorps xmm10, xmm10
movaps xmmword [rbp + 0x170], xmm11
movaps xmmword [rbp + 0x160], xmm12
movaps xmmword [rbp + 0x150], xmm13
movaps xmmword [rbp + 0x140], xmm14
xorps xmm13, xmm13
mov dword [rbp], eax
xorps xmm11, xmm11
mov rax, qword [rdi + 0x20]
mov qword [rbp + 0xe0], rax
mov eax, dword [r8 + 0x24]
mov dword [rbp + 8], eax
mov eax, dword [r8 + 0x28]
mov dword [rbp + 0xc], eax
movss dword [rbp + 0x30], xmm13
mov dword [rbp + 0x20], r14d
mov dword [rbp + 0x68], 0xf
mov dword [rbp + 0x10], 0
mov dword [rbp + 0xb8], ecx
mov dword [rbp + 0xdc], ecx
mov dword [rbp + 0xd8], ecx
mov dword [rbp + 0x78], ecx
mov dword [rbp + 0x40], ecx
mov qword [rbp + 0x28], rdi
mov dword [rbp + 4], ebx
mov dword [rbp + 0x60], r13d
cmp r11d, 2
jl 0x180052788
test rdx, rdx
je 0x180052788
imul r10d, dword [r8 + 0x20]
mov r9d, ecx
mov edx, dword [rdi + 0x28]
mov dword [rbp + 0x230], ecx
test edx, edx
js 0x18004f46f
mov edi, dword [rdi + 0x30]
nop dword [rax]
mov ecx, r9d
mov eax, edi
shl eax, cl
cmp eax, r10d
je 0x18004f464
inc r9d
cmp r9d, edx
jle 0x18004f450
mov rdi, qword [rbp + 0x28]
mov dword [rbp + 0x230], r9d
cmp r9d, edx
jg 0x180052788
mov ecx, r9d
mov r15d, 1
mov eax, r15d
shl eax, cl
mov dword [rbp + 0x50], eax
imul eax, dword [rdi + 0x30]
mov dword [rbp + 0x18], eax
mov eax, r13d
imul eax, r14d
cdqe
add rax, 0x3f
lea rax, [r8 + rax*4]
mov qword [rbp + 0xc8], rax
lea eax, [r13 + 0x400]
imul eax, r14d
movsxd rdx, eax
mov eax, ebx
imul eax, r14d
lea rbx, [0x180000000]
mov r14, qword [rbp + 0x238]
add rdx, 0x3f
movsxd rcx, eax
lea rdx, [r8 + rdx*4]
mov qword [rbp + 0x70], rdx
lea rax, [rdx + rcx*4]
mov qword [rbp + 0x58], rax
lea rax, [rax + rcx*4]
mov qword [rbp + 0x88], rax
lea rdx, [rax + rcx*4]
mov qword [rbp + 0xe8], rdx
test r14, r14
jne 0x18004f506
xor ecx, ecx
mov dword [rbp + 0x6c], r15d
mov ebx, ecx
jmp 0x18004f567
mov r9d, dword [r14 + 0x20]
mov edx, r9d
mov r15d, dword [r14 + 0x18]
mov r8, qword [rbp + 0x210]
bsr eax, r9d
lea ecx, [rax - 0xf]
shr edx, cl
lea eax, [rax*8 + 8]
mov edi, edx
xor ecx, ecx
shr edi, 0xc
sub edi, 8
cmp edx, dword [rbx + rdi*4 + 0xc8cc0]
lea edx, [r15*8]
seta cl
sub edx, ecx
sub edx, eax
bsr eax, r9d
mov r9d, dword [rbp + 0x230]
sub edx, edi
sub r15d, eax
mov dword [rbp + 0x6c], edx
dec r15d
lea ebx, [r15 + 4]
sar ebx, 3
xor ecx, ecx
mov eax, 0x4fb
mov dword [rbp + 0x1c], r15d
cmp r11d, eax
mov edx, eax
cmovl edx, r11d
mov edi, edx
mov dword [rbp + 0x14], edx
sub edi, ebx
cmp dword [r8 + 0x30], 0
mov dword [rbp + 0xb0], edi
je 0x18004f5d9
mov r8d, dword [r8 + 0x2c]
cmp r8d, 0xffffffff
je 0x18004f5d2
mov rcx, qword [rbp + 0x28]
mov edi, dword [rcx]
mov ecx, r8d
sar edi, 3
mov eax, edi
imul ecx, r10d
sar eax, 1
mov r10d, 2
add eax, ecx
cdq
idiv edi
mov edi, eax
mov dword [rbp + 0xa4], eax
sar edi, 6
mov r11d, eax
mov dword [rbp + 0x98], edi
mov edi, dword [rbp + 0xb0]
jmp 0x18004f64c
mov r8, qword [rbp + 0x210]
mov r8d, dword [r8 + 0x2c]
mov r11d, ecx
mov eax, r8d
mov dword [rbp + 0xa4], ecx
imul eax, r10d
cmp r15d, 1
jle 0x18004f5f6
add eax, r15d
mov r10d, 2
cmp r8d, 0xffffffff
je 0x18004f644
mov rcx, qword [rbp + 0x28]
mov ecx, dword [rcx]
lea eax, [rax + rcx*4]
cdq
lea ecx, [rcx*8]
idiv ecx
mov rdx, qword [rbp + 0x210]
mov ecx, eax
xor eax, eax
cmp dword [rdx + 0x34], eax
mov edx, dword [rbp + 0x14]
setne al
sub ecx, eax
cmp edx, ecx
mov eax, ecx
cmovl eax, edx
cmp eax, r10d
jge 0x18004f63c
mov edx, r10d
jmp 0x18004f641
cmp edx, ecx
cmovge edx, ecx
mov dword [rbp + 0x14], edx
sub edx, ebx
mov dword [rbp + 0x98], edx
mov eax, dword [rbp]
mov ecx, r9d
mov edx, 0x190
sar edx, cl
mov ecx, 3
sub edx, 0x32
sub ecx, r9d
lea eax, [rax + rax*4]
lea eax, [rax*8 + 0x14]
imul edx, eax
imul eax, dword [rbp + 0x14], 0x190
shl eax, cl
sub eax, edx
mov dword [rbp + 0x7c], eax
cmp r8d, 0xffffffff
je 0x18004f692
sub r8d, edx
cmp eax, r8d
cmovge eax, r8d
mov dword [rbp + 0x7c], eax
xor eax, eax
test r14, r14
jne 0x18004f6f4
mov qword [rbp + 0x108], r12
lea r14, [rbp + 0x108]
mov r12d, dword [rbp + 0x14]
mov dword [rbp + 0x110], r12d
mov qword [rbp + 0x238], r14
mov qword [rbp + 0x114], rax
mov dword [rbp + 0x11c], eax
mov qword [rbp + 0x120], 0x21
mov dword [rbp + 0x128], 0x80000000
mov dword [rbp + 0x134], 0xffffffff
mov qword [rbp + 0x12c], rax
mov dword [rbp + 0x138], eax
jmp 0x18004f6f8
mov r12d, dword [rbp + 0x14]
mov rdx, qword [rbp + 0x210]
test r11d, r11d
jle 0x18004f76a
cmp dword [rdx + 0x38], 0
je 0x18004f76a
lea ecx, [r11 + r11]
sub ecx, dword [rdx + 0xd4]
mov edx, eax
sar ecx, 6
cmp r15d, 1
mov eax, ecx
cmove edx, r10d
cmp edx, ecx
cmovg eax, edx
cmp eax, edi
jge 0x18004f763
cmp edx, ecx
cmovg ecx, edx
cmp ecx, edi
jge 0x18004f763
mov r8d, dword [r14 + 0xc]
lea r12d, [rcx + rbx]
mov edx, dword [r14 + 8]
mov dword [rbp + 0xb0], ecx
sub rdx, r8
add rdx, qword [r14]
mov ecx, r12d
sub rcx, r8
mov dword [rbp + 0x14], r12d
add rcx, qword [r14]
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + 8], r12d
mov rdx, qword [rbp + 0x210]
mov ecx, dword [rbp + 0xc]
lea r12d, [r12*8]
mov edi, dword [rbp + 0x18]
movabs r8, 0xffffffffffffff0
mov dword [rbp + 0x34], r12d
mov r12, qword [rbp + 0x28]
lea eax, [rdi + r13]
cmp ecx, dword [r12 + 0xc]
cmovg ecx, dword [r12 + 0xc]
imul eax, dword [rbp + 0x20]
mov dword [rbp + 0x48], ecx
movsxd rcx, eax
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x18004f7b3
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
mov r11d, dword [rdx + 0x20]
sub rsp, rax
mov rcx, rsi
lea rax, [rsp + 0xc0]
mov qword [rbp + 0x90], rax
mov eax, edi
sub eax, r13d
imul eax, dword [rbp]
cdq
idiv r11d
movsxd rdi, eax
mov edx, edi
call fcn.18004a3d0
mov rdx, qword [rbp + 0x210]
lea rcx, [rsi + rdi*4]
mov eax, r13d
imul eax, dword [rbp]
movss xmm4, dword [rdx + 0xe4]
maxss xmm4, xmm0
cdq
idiv r11d
mov edx, eax
call fcn.18004a3d0
mov r8, qword [rbp + 0x210]
maxss xmm4, xmm0
movss xmm12, dword [0x1800d1520]
xor r11d, r11d
mov eax, 1
movaps xmm1, xmm12
mov edi, r11d
mov ecx, dword [r8 + 0x40]
shl eax, cl
movss dword [r8 + 0xe4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm4
setae dil
mov dword [rbp + 0x38], edi
cmp r15d, 1
jne 0x18004f94b
mov eax, dword [r14 + 0x20]
mov ecx, eax
shr ecx, 0xf
sub eax, ecx
test edi, edi
je 0x18004f87b
add dword [r14 + 0x24], eax
test edi, edi
cmovne eax, ecx
mov dword [r14 + 0x20], eax
cmp eax, 0x800000
ja 0x18004f8c4
nop dword [rax]
mov edx, dword [r14 + 0x24]
mov rcx, r14
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [r14 + 0x24]
shl dword [r14 + 0x20], 8
and ecx, 0x7fffff
add dword [r14 + 0x18], 8
shl ecx, 8
cmp dword [r14 + 0x20], 0x800000
mov dword [r14 + 0x24], ecx
jbe 0x18004f890
test edi, edi
je 0x18004f94f
mov edx, dword [rbp + 0xa4]
test edx, edx
jle 0x18004f929
mov r8d, dword [r14 + 0xc]
lea eax, [rbx + 2]
mov ebx, dword [rbp + 0x14]
cmp ebx, eax
mov edx, dword [r14 + 8]
cmovge ebx, eax
mov dword [rbp + 0xb0], 2
sub rdx, r8
mov ecx, ebx
add rdx, qword [r14]
sub rcx, r8
add rcx, qword [r14]
lea eax, [rbx*8]
mov dword [rbp + 0x14], ebx
mov dword [rbp + 0x34], eax
mov dword [rbp + 0x98], ebx
call sub.VCRUNTIME140.dll_memcpy
mov r8, qword [rbp + 0x210]
xor r11d, r11d
mov dword [r14 + 8], ebx
jmp 0x18004f92c
mov ebx, dword [rbp + 0x14]
bsr eax, dword [r14 + 0x20]
lea r15d, [rbx*8]
mov dword [rbp + 0x38], edi
inc eax
mov dword [rbp + 0x1c], r15d
add eax, r15d
mov dword [r14 + 0x18], eax
jmp 0x18004f94f
mov dword [rbp + 0x38], r11d
mov r10d, dword [rbp + 0x18]
mov ebx, r11d
mov r15, qword [rbp + 0x218]
add r12, 0x10
mov esi, r11d
lea eax, [r10 + r13]
mov r14d, eax
nop dword [rax + rax]
mov rdx, qword [rbp + 0x90]
mov r9d, dword [rbp + 0x20]
movsxd rcx, ebx
movsxd rax, esi
add rax, r13
lea rdi, [rcx + 0x31]
lea rdi, [r8 + rdi*4]
lea rdx, [rdx + rax*4]
mov qword [rsp + 0x30], rdi
mov eax, dword [r8 + 0x20]
lea rcx, [r15 + rcx*4]
mov qword [rsp + 0x28], r12
mov r8d, r10d
mov dword [rsp + 0x20], eax
call fcn.18004b390
mov r8, qword [rbp + 0x210]
inc ebx
mov r10d, dword [rbp + 0x18]
add esi, r14d
cmp ebx, dword [rbp + 0x20]
jl 0x18004f970
cmp dword [r8 + 0x44], 0
mov r12, r8
mov r14, qword [rbp + 0x238]
mov r15d, dword [rbp + 0x1c]
mov ecx, dword [rbp + 0xb0]
je 0x18004f9e7
cmp ecx, 3
jg 0x18004fb69
mov r13d, dword [rbp]
lea eax, [r13*2]
add eax, r13d
shl eax, 2
cmp ecx, eax
jg 0x18004fb6d
xor eax, eax
mov edx, dword [r12 + 0x68]
lea rdi, [r12 + 0x7c]
mov rsi, qword [rbp + 0x90]
mov r9d, dword [rbp + 0x20]
mov r8, qword [rbp + 0xc8]
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x50], ecx
mov rcx, r12
mov dword [rsp + 0x48], eax
lea rax, [rbp + 0x1c]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x68]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edx
mov dword [rbp + 0x4c], edx
mov rdx, rsi
mov dword [rsp + 0x20], r10d
call fcn.18004ea60
movss xmm1, dword [0x1800d1488]
movss xmm14, dword [rbp + 0x10]
comiss xmm14, xmm1
mov ebx, dword [rbp + 0x68]
mov dword [rbp + 0xa0], ebx
ja 0x18004fa87
movss xmm0, dword [r12 + 0x70]
comiss xmm0, xmm1
jbe 0x18004fadf
cmp dword [rdi], 0
je 0x18004faa3
movss xmm0, dword [r12 + 0x80]
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x1800d1558]
jbe 0x18004fadf
movd xmm1, dword [r12 + 0x6c]
cvtdq2pd xmm1, xmm1
movd xmm2, ebx
movaps xmm0, xmm1
mulsd xmm0, qword [0x1800d1590]
cvtdq2pd xmm2, xmm2
comisd xmm2, xmm0
ja 0x18004fad5
mulsd xmm1, qword [0x1800d1580]
comisd xmm1, xmm2
jbe 0x18004fadf
mov dword [rbp + 0xdc], 1
mov r11d, 6
mov dword [rbp + 0x68], r11d
test eax, eax
jne 0x18004fba3
mov eax, dword [rbp + 8]
mov ebx, dword [rbp + 0x34]
test eax, eax
jne 0x18004fd9a
lea eax, [r15 + 0x10]
cmp eax, ebx
jg 0x18004fd97
mov ecx, dword [r14 + 0x20]
mov eax, ecx
shr eax, 1
sub ecx, eax
mov dword [r14 + 0x20], ecx
cmp ecx, 0x800000
ja 0x18004fd97
nop word [rax + rax]
mov edx, dword [r14 + 0x24]
mov rcx, r14
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [r14 + 0x24]
shl dword [r14 + 0x20], 8
and ecx, 0x7fffff
add dword [r14 + 0x18], 8
shl ecx, 8
cmp dword [r14 + 0x20], 0x800000
mov dword [r14 + 0x24], ecx
jbe 0x18004fb30
jmp 0x18004fd97
mov r13d, dword [rbp]
cmp dword [rbp + 8], 0
jne 0x18004fa01
cmp dword [rbp + 0x38], 0
jne 0x18004fa01
cmp dword [r12 + 0x18], 0
jne 0x18004fa01
cmp dword [r12 + 0x1c], 5
jl 0x18004fa01
mov eax, 1
jmp 0x18004fa03
mov edi, dword [r14 + 0x20]
mov edx, dword [r14 + 0x24]
shr edi, 1
sub edx, edi
add edx, dword [r14 + 0x20]
mov dword [r14 + 0x24], edx
mov dword [r14 + 0x20], edi
cmp edi, 0x800000
ja 0x18004fbf3
shr edx, 0x17
mov rcx, r14
call fcn.1800533e0
mov edx, dword [r14 + 0x24]
shl dword [r14 + 0x20], 8
and edx, 0x7fffff
add dword [r14 + 0x18], 8
shl edx, 8
cmp dword [r14 + 0x20], 0x800000
mov dword [r14 + 0x24], edx
jbe 0x18004fbc3
inc ebx
mov r8d, r11d
bsr edi, ebx
mov rcx, r14
lea edx, [rdi - 4]
call fcn.180053490
mov r8d, dword [r14 + 0x14]
lea ecx, [rdi - 4]
mov r9d, dword [r14 + 0x10]
mov r11d, edi
mov eax, 0x10
mov edi, ebx
shl eax, cl
sub edi, eax
lea eax, [r11 + r8]
cmp eax, 0x20
jbe 0x18004fc76
xor esi, esi
nop word [rax + rax]
mov ecx, dword [r14 + 0x1c]
mov r10d, dword [r14 + 0xc]
add ecx, r10d
mov edx, dword [r14 + 8]
cmp ecx, edx
jb 0x18004fc4a
mov eax, 0xffffffff
jmp 0x18004fc5d
lea eax, [r10 + 1]
mov dword [r14 + 0xc], eax
sub edx, eax
mov rax, qword [r14]
mov byte [rdx + rax], r9b
mov eax, esi
or dword [r14 + 0x30], eax
sub r8d, 8
shr r9d, 8
cmp r8d, 8
jge 0x18004fc30
mov rsi, qword [rbp + 0x90]
add dword [r14 + 0x18], r11d
mov ecx, r8d
add r8d, r11d
shl edi, cl
dec ebx
or edi, r9d
mov dword [rbp + 0xa0], ebx
lea eax, [r8 + 3]
cmp eax, 0x20
jbe 0x18004fce3
xor r13d, r13d
nop dword [rax]
mov ecx, dword [r14 + 0x1c]
mov r9d, dword [r14 + 0xc]
add ecx, r9d
mov edx, dword [r14 + 8]
cmp ecx, edx
jb 0x18004fcba
mov eax, 0xffffffff
jmp 0x18004fcce
lea eax, [r9 + 1]
mov dword [r14 + 0xc], eax
sub edx, eax
mov rax, qword [r14]
mov byte [rdx + rax], dil
mov eax, r13d
or dword [r14 + 0x30], eax
sub r8d, 8
shr edi, 8
cmp r8d, 8
jge 0x18004fca0
mov r13d, dword [rbp]
mov eax, dword [rbp + 0x1c]
mov ecx, r8d
mov edx, dword [r14 + 0x20]
add dword [r14 + 0x18], 3
shl eax, cl
or edi, eax
lea eax, [r8 + 3]
mov dword [r14 + 0x10], edi
mov r8d, edx
mov dword [r14 + 0x14], eax
lea rdi, [0x1800c7708]
movsxd rax, dword [rbp + 0x4c]
add rdi, rax
shr r8d, 2
test eax, eax
jle 0x18004fd3e
movzx eax, byte [rdi - 1]
mov ecx, dword [r14 + 0x24]
imul eax, r8d
sub ecx, eax
add ecx, edx
mov dword [r14 + 0x24], ecx
movzx edx, byte [rdi - 1]
movzx eax, byte [rdi]
sub edx, eax
imul edx, r8d
jmp 0x18004fd47
movzx eax, byte [rdi]
imul eax, r8d
sub edx, eax
mov eax, 0x20
mov rcx, r14
mov dword [rax + rcx], edx
cmp edx, 0x800000
ja 0x18004fd94
nop word [rax + rax]
mov edx, dword [r14 + 0x24]
mov rcx, r14
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [r14 + 0x24]
shl dword [r14 + 0x20], 8
and ecx, 0x7fffff
add dword [r14 + 0x18], 8
shl ecx, 8
cmp dword [r14 + 0x20], 0x800000
mov dword [r14 + 0x24], ecx
jbe 0x18004fd60
mov ebx, dword [rbp + 0x34]
mov eax, dword [rbp + 8]
mov edx, dword [r12 + 0x1c]
xor r10d, r10d
mov dword [rbp + 0x10], r10d
mov r9d, r10d
mov dword [rbp + 0x1c], r10d
mov r8d, r10d
mov edi, edx
cmp edx, 1
jl 0x18004fe27
cmp dword [r12 + 0x44], r10d
jne 0x18004fe27
test eax, eax
je 0x18004fddb
cmp dword [rbp + 0x98], 0xf
jge 0x18004fddb
cmp dword [r12 + 0xbc], 2
mov eax, 1
jne 0x18004fdde
mov eax, r10d
mov edx, dword [rbp + 0x60]
lea rcx, [rbp + 0x40]
mov r15d, dword [rbp + 0x18]
lea r9, [rbp + 0x30]
mov r8d, dword [rbp + 0x20]
add edx, r15d
mov qword [rsp + 0x30], rcx
mov rcx, rsi
mov dword [rsp + 0x28], eax
call fcn.18004a480
mov edi, dword [r12 + 0x1c]
mov r9d, eax
movss xmm13, dword [rbp + 0x30]
mov edx, edi
mov r8d, dword [rbp + 0x1c]
xor r10d, r10d
mov dword [rbp + 0x10], eax
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x78], eax
jmp 0x18004fe2b
mov r15d, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x230]
test ecx, ecx
jle 0x18004fe5d
bsr eax, dword [r14 + 0x20]
mov ecx, dword [r14 + 0x18]
sub ecx, eax
add ecx, 2
cmp ecx, ebx
jg 0x18004fe5d
test r9d, r9d
je 0x18004fe56
mov r8d, dword [rbp + 0x50]
mov edi, edx
mov dword [rbp + 0x1c], r8d
mov ebx, 1
jmp 0x18004fe6c
mov ebx, 1
mov dword [rbp + 0x10], r10d
mov dword [rbp + 0xd8], ebx
mov r9d, dword [rbp + 0x20]
mov eax, r15d
imul eax, r9d
movabs r15, 0xffffffffffffff0
movsxd rcx, eax
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x18004fe94
mov rax, r15
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
mov edx, dword [rbp + 4]
sub rsp, rax
mov eax, edx
imul eax, r9d
lea r12, [rsp + 0xc0]
mov qword [rbp + 0xd0], r12
cdqe
lea rax, [rax*4]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18004fece
mov rcx, r15
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1800b2b80
sub rsp, rcx
lea rax, [rsp + 0xc0]
mov qword [rbp + 0x80], rax
mov eax, edx
imul eax, r9d
cdqe
lea rax, [rax*4]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18004ff08
mov rcx, r15
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1800b2b80
sub rsp, rcx
lea rax, [rsp + 0xc0]
mov qword [rbp + 0x60], rax
test r8d, r8d
je 0x18004ff2d
cmp edi, 8
jge 0x18004ff31
xor eax, eax
mov ebx, eax
mov eax, edx
mov dword [rbp + 0x30], ebx
imul eax, r13d
movsxd rcx, eax
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x18004ff4d
mov rax, r15
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
movsxd r15, dword [rbp + 0xc]
sub rsp, rax
movss xmm8, dword [0x1800d14a0]
mov qword [rbp + 0x40], r15
lea r13, [rsp + 0xc0]
mov qword [rbp + 0xc0], r13
test ebx, ebx
je 0x18005036a
mov rdx, qword [rbp + 0x210]
mov r8, rsi
mov edi, dword [rbp + 0x230]
mov rcx, qword [rbp + 0x28]
mov eax, dword [rdx + 0x20]
xor edx, edx
mov dword [rsp + 0x38], eax
mov eax, dword [rbp]
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], r9d
mov r9, r12
mov dword [rsp + 0x20], eax
call fcn.18004af80
mov eax, dword [rbp]
mov rdx, r12
mov r8, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], edi
mov edi, dword [rbp + 0x48]
mov r9d, edi
mov dword [rsp + 0x20], eax
call fcn.180045800
mov eax, dword [rbp]
mov edx, edi
mov r9, qword [rbp + 0x80]
mov r8d, dword [rbp + 0xc]
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
call fcn.1800580a0
mov eax, dword [rbp]
test eax, eax
jle 0x1800500d4
movsxd r10, dword [rbp + 4]
lea r8, [r13 + 8]
mov r14d, dword [rbp + 0x230]
xor ecx, ecx
mov edi, ecx
mov r9d, eax
lea r11, [r10*4]
mov rdx, rcx
cmp r15, 4
jl 0x18005007c
movd xmm2, r14d
lea rcx, [r15 - 4]
cvtdq2ps xmm2, xmm2
shr rcx, 2
mov rax, r8
inc rcx
mulss xmm2, xmm8
lea rdx, [rcx*4]
shufps xmm2, xmm2, 0
nop word [rax + rax]
movups xmm0, xmmword [rax - 8]
addps xmm0, xmm2
movups xmmword [rax - 8], xmm0
add rax, 0x10
sub rcx, 1
jne 0x180050060
cmp rdx, r15
jl 0x180050081
jmp 0x1800500b8
test r15, r15
jle 0x1800500ba
lea rax, [rdi + rdx]
movd xmm1, r14d
lea rcx, [rax*4]
mov rax, r15
cvtdq2ps xmm1, xmm1
add rcx, r13
sub rax, rdx
mulss xmm1, xmm8
movaps xmm0, xmm1
addss xmm0, dword [rcx]
movss dword [rcx], xmm0
add rcx, 4
sub rax, 1
jne 0x1800500a3
xor ecx, ecx
add rdi, r10
add r8, r11
sub r9, 1
jne 0x180050025
mov r14, qword [rbp + 0x238]
mov edi, dword [rbp + 0x48]
mov r9d, dword [rbp + 0x20]
mov rax, qword [rbp + 0x210]
mov r8, rsi
mov edx, dword [rbp + 0x1c]
mov rcx, qword [rbp + 0x28]
mov eax, dword [rax + 0x20]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x230]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp]
mov dword [rsp + 0x28], r9d
mov r9, r12
mov dword [rsp + 0x20], eax
call fcn.18004af80
mov eax, dword [rbp + 0x230]
mov r9d, edi
mov r8, qword [rbp + 0x80]
mov rdx, r12
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp]
mov dword [rsp + 0x20], eax
call fcn.180045800
mov rax, qword [rbp + 0x210]
mov r8, qword [rbp + 0x80]
cmp dword [rax + 0x44], 0
je 0x180050230
cmp r15, 2
jle 0x180050230
movss xmm2, dword [0x1800d13d4]
mov ecx, 2
movss xmm3, dword [0x1800d13b0]
cmp r15, 6
jl 0x18005020b
lea rdx, [r15 - 6]
shr rdx, 2
lea rax, [r8 + 0x10]
inc rdx
lea rcx, [rdx*4 + 2]
nop dword [rax]
movss xmm0, dword [r8]
movss xmm1, dword [rax - 8]
lea rax, [rax + 0x10]
mulss xmm0, xmm2
minss xmm1, xmm0
maxss xmm1, xmm3
movss dword [rax - 0x18], xmm1
movss xmm0, dword [r8]
movss xmm1, dword [rax - 0x14]
mulss xmm0, xmm2
minss xmm1, xmm0
maxss xmm1, xmm3
movss dword [rax - 0x14], xmm1
movss xmm0, dword [r8]
movss xmm1, dword [rax - 0x10]
mulss xmm0, xmm2
minss xmm1, xmm0
maxss xmm1, xmm3
movss dword [rax - 0x10], xmm1
movss xmm1, dword [rax - 0xc]
movss xmm0, dword [r8]
mulss xmm0, xmm2
minss xmm1, xmm0
maxss xmm1, xmm3
movss dword [rax - 0xc], xmm1
sub rdx, 1
jne 0x180050190
cmp rcx, r15
jge 0x180050230
movss xmm1, dword [r8 + rcx*4]
movss xmm0, dword [r8]
mulss xmm0, xmm2
minss xmm1, xmm0
maxss xmm1, xmm3
movss dword [r8 + rcx*4], xmm1
inc rcx
cmp rcx, r15
jl 0x18005020b
mov rax, qword [rbp + 0x60]
mov r9, r8
mov r15d, dword [rbp]
mov edx, edi
mov r8d, dword [rbp + 0xc]
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rax
call fcn.1800580a0
mov eax, dword [rbp + 4]
imul eax, r15d
movsxd rcx, eax
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x180050275
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
movsxd r8, dword [rbp + 0xc]
sub rsp, rax
xor edx, edx
lea rdi, [rsp + 0xc0]
mov rcx, rdi
mov qword [rbp + 0xa8], rdi
lea r8, [r8*4]
call sub.VCRUNTIME140.dll_memset
movsxd r11, dword [rbp + 4]
mov r10d, dword [rbp + 8]
mov r15, r11
movss xmm7, dword [0x1800d1474]
movss xmm6, dword [0x1800d1470]
mov r9, qword [rbp + 0x210]
mov qword [rbp + 0x100], r11
test r10d, r10d
jne 0x18005083a
mov r11, qword [r9 + 0xf0]
test r11, r11
je 0x180050836
cmp dword [r9 + 0x44], r10d
jne 0x180050836
mov r13d, dword [r9 + 0x60]
xor eax, eax
mov ebx, dword [rbp]
cmp r13d, 2
mov r10d, eax
movaps xmm11, xmm9
mov eax, 2
movaps xmm10, xmm9
cmovl r13d, eax
mov r12d, r13d
test ebx, ebx
jle 0x1800503d6
movss xmm3, dword [0x1800d16e8]
mov rsi, qword [rbp + 0xe0]
nop dword [rax]
test r13d, r13d
je 0x1800503b7
mov r8d, 1
mov r9d, r13d
sub r8d, r13d
mov rax, rsi
mov rdi, r11
nop dword [rax + rax]
movss xmm2, dword [rdi]
minss xmm2, xmm7
comiss xmm2, xmm3
jbe 0x180050372
comiss xmm2, xmm9
jbe 0x180050375
mulss xmm2, xmm8
jmp 0x180050375
mov edi, dword [rbp + 0x48]
jmp 0x1800500d8
movaps xmm2, xmm3
movsx ecx, word [rax + 2]
lea rdx, [rax + 2]
movsx eax, word [rax]
add rdi, 4
sub ecx, eax
movd xmm1, r8d
cvtdq2ps xmm1, xmm1
add r10d, ecx
add r8d, 2
mov rax, rdx
movd xmm0, ecx
mulss xmm1, xmm2
cvtdq2ps xmm0, xmm0
addss xmm10, xmm1
mulss xmm0, xmm2
addss xmm11, xmm0
sub r9, 1
jne 0x180050350
lea r11, [r11 + r15*4]
sub rbx, 1
jne 0x180050330
mov rdi, qword [rbp + 0xa8]
mov r9, qword [rbp + 0x210]
mov ebx, dword [rbp]
mulss xmm10, dword [0x1800d15ec]
lea ecx, [r13 - 1]
lea eax, [r13 + 1]
xorps xmm0, xmm0
imul ecx, eax
cvtsi2ss xmm0, r10d
imul ecx, r13d
divss xmm11, xmm0
imul ecx, ebx
xorps xmm0, xmm0
addss xmm11, xmm6
cvtsi2ss xmm0, ecx
divss xmm10, xmm0
movss xmm0, dword [0x1800d16ac]
mulss xmm10, xmm8
minss xmm10, dword [0x1800d141c]
comiss xmm10, xmm0
ja 0x18005042f
movaps xmm10, xmm0
mov rcx, qword [rbp + 0xe0]
xor r10d, r10d
mov r8d, r10d
movsx eax, word [rcx + r13*2]
add rcx, 2
cdq
sub eax, edx
sar eax, 1
mov edx, eax
movsx eax, word [rcx]
cmp eax, edx
jge 0x18005046f
nop dword [rax]
nop word [rax + rax]
movsx eax, word [rcx + 2]
lea rcx, [rcx + 2]
inc r8d
cmp eax, edx
jl 0x180050460
mov edx, r10d
mov rsi, r12
test r13d, r13d
je 0x180050805
cmp ebx, 2
jne 0x1800504ee
mov rax, qword [r9 + 0xf0]
neg r8d
sub rdi, rax
mov rcx, r12
nop dword [rax]
nop word [rax + rax]
movss xmm1, dword [rax]
maxss xmm1, dword [rax + r15*4]
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
minss xmm1, xmm9
mulss xmm0, xmm10
addss xmm0, xmm11
subss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x1800504d5
subss xmm1, xmm7
inc edx
movss dword [rdi + rax], xmm1
inc r8d
add rax, 4
sub rcx, 1
jne 0x1800504a0
mov r15, qword [rbp + 0xa8]
jmp 0x18005067b
mov r11d, r10d
mov rbx, r10
cmp rsi, 4
jb 0x1800506ad
mov r15, qword [rbp + 0xa8]
lea r10, [r13 - 4]
mov r9, qword [r9 + 0xf0]
mov edi, 2
sub edi, r8d
shr r10, 2
sub r9, r15
inc r10
lea rcx, [r15 + 4]
lea r11d, [r10*4]
lea rbx, [r10*4]
nop word [rax + rax]
movss xmm1, dword [rcx + r9 - 4]
lea eax, [rdi - 2]
movd xmm0, eax
minss xmm1, xmm9
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
addss xmm0, xmm11
subss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x180050574
subss xmm1, xmm7
inc edx
movss dword [rcx - 4], xmm1
movss xmm1, dword [rcx + r9]
lea eax, [rdi - 1]
movd xmm0, eax
minss xmm1, xmm9
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
addss xmm0, xmm11
subss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x1800505a6
subss xmm1, xmm7
inc edx
movss dword [rcx], xmm1
movss xmm1, dword [rcx + r9 + 4]
movd xmm0, edi
minss xmm1, xmm9
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
addss xmm0, xmm11
subss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x1800505d7
subss xmm1, xmm7
inc edx
movss dword [rcx + 4], xmm1
movss xmm1, dword [rcx + r9 + 8]
lea eax, [rdi + 1]
movd xmm0, eax
minss xmm1, xmm9
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
addss xmm0, xmm11
subss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x18005060b
subss xmm1, xmm7
inc edx
movss dword [rcx + 8], xmm1
add edi, 4
add rcx, 0x10
sub r10, 1
jne 0x180050540
cmp rbx, rsi
jge 0x18005067b
mov r9, qword [rbp + 0x210]
mov rdi, qword [r9 + 0xf0]
lea rax, [r15 + rbx*4]
sub rdi, r15
sub r11d, r8d
mov rcx, rsi
sub rcx, rbx
movss xmm1, dword [rax + rdi]
movd xmm0, r11d
minss xmm1, xmm9
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
addss xmm0, xmm11
subss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x18005066e
subss xmm1, xmm7
inc edx
movss dword [rax], xmm1
inc r11d
add rax, 4
sub rcx, 1
jne 0x18005063f
cmp edx, 3
jl 0x180050805
addss xmm11, xmm7
comiss xmm11, xmm9
jbe 0x1800506c2
mov r8, r12
xor edx, edx
shl r8, 2
mov rcx, r15
movaps xmm11, xmm9
movaps xmm10, xmm9
call sub.VCRUNTIME140.dll_memset
jmp 0x180050805
test r13d, r13d
je 0x180050805
mov r15, qword [rbp + 0xa8]
jmp 0x180050628
xor r10d, r10d
mov ecx, r10d
cmp r13d, 0x10
jb 0x180050742
movdqa xmm2, xmmword [0x1800d19a0]
mov eax, 0xfffffff0
and r12, rax
mov edx, r10d
lea rax, [r15 + 0x20]
xorps xmm3, xmm3
nop dword [rax + rax]
movups xmm1, xmmword [rax - 0x20]
add ecx, 0x10
add rdx, 0x10
movaps xmm0, xmm3
subps xmm1, xmm2
maxps xmm0, xmm1
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [rax - 0x10]
movaps xmm0, xmm3
subps xmm1, xmm2
maxps xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
movups xmm1, xmmword [rax]
movaps xmm0, xmm3
subps xmm1, xmm2
maxps xmm0, xmm1
movups xmmword [rax], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmm0, xmm3
subps xmm1, xmm2
maxps xmm0, xmm1
movups xmmword [rax + 0x10], xmm0
add rax, 0x40
cmp rdx, r12
jl 0x1800506f0
movsxd rcx, ecx
cmp rcx, rsi
jge 0x180050805
mov rax, rsi
sub rax, rcx
cmp rax, 4
jl 0x1800507e5
lea rax, [rcx + 2]
mov rdx, rsi
sub rdx, rcx
lea rax, [r15 + rax*4]
sub rdx, 4
shr rdx, 2
inc rdx
lea rcx, [rcx + rdx*4]
nop dword [rax + rax]
movss xmm1, dword [rax - 8]
movaps xmm0, xmm9
movss xmm2, dword [rax]
subss xmm1, xmm7
subss xmm2, xmm7
maxss xmm0, xmm1
movss xmm1, dword [rax - 4]
subss xmm1, xmm7
movss dword [rax - 8], xmm0
movaps xmm0, xmm9
maxss xmm0, xmm1
movss xmm1, dword [rax + 4]
subss xmm1, xmm7
movss dword [rax - 4], xmm0
movaps xmm0, xmm9
maxss xmm0, xmm2
movss dword [rax], xmm0
movaps xmm0, xmm9
maxss xmm0, xmm1
movss dword [rax + 4], xmm0
add rax, 0x10
sub rdx, 1
jne 0x180050780
cmp rcx, rsi
jge 0x180050805
movss xmm1, dword [r15 + rcx*4]
movaps xmm0, xmm9
subss xmm1, xmm7
maxss xmm0, xmm1
movss dword [r15 + rcx*4], xmm0
inc rcx
cmp rcx, rsi
jl 0x1800507e5
mulss xmm10, dword [0x1800d1634]
addss xmm11, xmm6
mov ebx, dword [rbp + 0x30]
mov rsi, qword [rbp + 0x90]
mov r12, qword [rbp + 0xd0]
mov r13, qword [rbp + 0xc0]
mov r9, qword [rbp + 0x210]
mov r10d, dword [rbp + 8]
mov r11d, dword [rbp + 4]
mov edx, dword [r9 + 0x44]
mov edi, edx
test edx, edx
jne 0x1800509f9
movss xmm2, dword [0x1800d16f8]
cmp dword [rbp + 0x1c], edx
je 0x180050867
movd xmm3, dword [rbp + 0x230]
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm8
jmp 0x18005086b
movaps xmm3, xmm9
mov r15d, dword [rbp + 0xc]
cmp r10d, r15d
jge 0x18005099a
cmp dword [rbp], 2
movsxd rcx, r10d
jne 0x1800508d2
mov rax, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x40]
movsxd rdi, r11d
sub rdx, rcx
lea rax, [rax + rcx*4]
nop dword [rax]
nop word [rax + rax]
movss xmm0, dword [rax]
subss xmm2, xmm12
movss xmm1, dword [rax + rdi*4]
subss xmm0, xmm3
subss xmm1, xmm3
add rax, 4
maxss xmm2, xmm0
maxss xmm2, xmm1
addss xmm9, xmm2
sub rdx, 1
jne 0x1800508a0
jmp 0x18005099a
mov rdi, qword [rbp + 0x40]
cmp rcx, rdi
jge 0x18005099a
mov r8, qword [rbp + 0x60]
mov rax, rdi
sub rax, rcx
cmp rax, 4
jl 0x18005097a
mov rdx, rdi
lea rax, [r8 + 8]
sub rdx, rcx
lea rax, [rax + rcx*4]
sub rdx, 4
shr rdx, 2
inc rdx
lea rcx, [rcx + rdx*4]
movss xmm0, dword [rax - 8]
subss xmm2, xmm12
subss xmm0, xmm3
maxss xmm2, xmm0
movss xmm0, dword [rax - 4]
subss xmm0, xmm3
addss xmm9, xmm2
subss xmm2, xmm12
maxss xmm2, xmm0
movss xmm0, dword [rax]
subss xmm0, xmm3
addss xmm9, xmm2
subss xmm2, xmm12
maxss xmm2, xmm0
movss xmm0, dword [rax + 4]
subss xmm0, xmm3
add rax, 0x10
addss xmm9, xmm2
subss xmm2, xmm12
maxss xmm2, xmm0
addss xmm9, xmm2
sub rdx, 1
jne 0x180050910
cmp rcx, rdi
jge 0x18005099a
movss xmm0, dword [r8 + rcx*4]
subss xmm2, xmm12
subss xmm0, xmm3
inc rcx
maxss xmm2, xmm0
addss xmm9, xmm2
cmp rcx, rdi
jl 0x18005097a
movss xmm1, dword [r9 + 0xf8]
mov eax, r15d
sub eax, r10d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm9, xmm0
movss xmm0, dword [0x1800d16d0]
subss xmm9, xmm1
maxss xmm0, xmm9
movss xmm9, dword [0x1800d15c8]
comiss xmm0, xmm9
ja 0x1800509da
movaps xmm9, xmm0
mov edx, dword [r9 + 0x44]
movaps xmm0, xmm9
mulss xmm0, dword [0x1800d140c]
mov edi, edx
addss xmm0, xmm1
movss dword [r9 + 0xf8], xmm0
test ebx, ebx
jne 0x180050a20
mov rdx, qword [rbp + 0x60]
mov eax, r11d
imul eax, dword [rbp]
mov rcx, r13
movsxd r8, eax
shl r8, 2
call sub.VCRUNTIME140.dll_memcpy_1
mov r9, qword [rbp + 0x210]
mov edx, edi
mov r15d, dword [rbp + 0x230]
test r15d, r15d
jle 0x180050c64
bsr eax, dword [r14 + 0x20]
mov ecx, dword [r14 + 0x18]
mov ebx, dword [rbp + 0x34]
sub ecx, eax
mov edi, dword [rbp + 0x10]
add ecx, 2
cmp ecx, ebx
jg 0x180050bf9
test edi, edi
jne 0x180050bf9
cmp dword [r9 + 0x1c], 5
jl 0x180050bf9
test edx, edx
jne 0x180050bf9
mov eax, dword [rbp + 8]
test eax, eax
jne 0x180050bf9
mov ecx, dword [rbp + 0xc]
mov r9d, eax
mov edi, dword [rbp]
mov r8d, dword [rbp + 4]
mov rdx, qword [rbp + 0x70]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp + 0x60]
call fcn.18004a9c0
test eax, eax
je 0x180050bf6
mov ecx, dword [rbp + 0x50]
mov r9, r12
mov rax, qword [rbp + 0x210]
mov edx, ecx
mov dword [rbp + 0x1c], ecx
mov r8, rsi
mov rcx, qword [rbp + 0x28]
mov dword [rbp + 0x10], 1
mov eax, dword [rax + 0x20]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x20]
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edi
call fcn.18004af80
mov r9d, dword [rbp + 0x48]
mov rdx, r12
mov r8, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], edi
call fcn.180045800
mov rax, qword [rbp + 0x60]
mov r9, qword [rbp + 0x80]
mov r8d, dword [rbp + 0xc]
mov edx, dword [rbp + 0x48]
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call fcn.1800580a0
mov ecx, edi
test edi, edi
jle 0x180050bf2
movsxd rax, dword [rbp + 4]
lea r8, [r13 + 8]
mov rbx, qword [rbp + 0x40]
xor r14d, r14d
mov edi, r14d
mov r10, rax
mov r9d, ecx
lea r11, [rax*4]
mov rdx, r14
cmp rbx, 4
jl 0x180050b9c
movd xmm2, r15d
lea rcx, [rbx - 4]
cvtdq2ps xmm2, xmm2
shr rcx, 2
mov rax, r8
inc rcx
mulss xmm2, xmm8
lea rdx, [rcx*4]
shufps xmm2, xmm2, 0
nop word [rax + rax]
movups xmm0, xmmword [rax - 8]
addps xmm0, xmm2
movups xmmword [rax - 8], xmm0
add rax, 0x10
sub rcx, 1
jne 0x180050b80
cmp rdx, rbx
jl 0x180050ba1
jmp 0x180050bd8
test rbx, rbx
jle 0x180050bd8
lea rax, [rdi + rdx]
movd xmm1, r15d
lea rcx, [rax*4]
mov rax, rbx
cvtdq2ps xmm1, xmm1
add rcx, r13
sub rax, rdx
mulss xmm1, xmm8
movaps xmm0, xmm1
addss xmm0, dword [rcx]
movss dword [rcx], xmm0
add rcx, 4
sub rax, 1
jne 0x180050bc3
add rdi, r10
add r8, r11
sub r9, 1
jne 0x180050b46
mov r14, qword [rbp + 0x238]
mov ebx, dword [rbp + 0x34]
movaps xmm13, xmm6
mov edi, dword [rbp + 0x10]
mov edx, dword [r14 + 0x20]
mov ecx, dword [r14 + 0x18]
bsr eax, edx
sub ecx, eax
add ecx, 2
cmp ecx, ebx
jg 0x180050c64
mov eax, edx
shr eax, 3
sub edx, eax
test edi, edi
je 0x180050c1e
add dword [r14 + 0x24], edx
test edi, edi
cmovne edx, eax
mov dword [r14 + 0x20], edx
cmp edx, 0x800000
ja 0x180050c64
nop dword [rax]
mov edx, dword [r14 + 0x24]
mov rcx, r14
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [r14 + 0x24]
shl dword [r14 + 0x20], 8
and ecx, 0x7fffff
add dword [r14 + 0x18], 8
shl ecx, 8
cmp dword [r14 + 0x20], 0x800000
mov dword [r14 + 0x24], ecx
jbe 0x180050c30
mov eax, dword [rbp + 0x18]
imul eax, dword [rbp]
movsxd rcx, eax
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x180050c85
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
mov rdx, qword [rbp + 0x28]
sub rsp, rax
mov r12d, dword [rbp + 0x50]
mov esi, r12d
movsxd r15, dword [rbp + 0x48]
movss xmm2, dword [0x1800d13a8]
imul esi, dword [rdx + 0x30]
lea rax, [rsp + 0xc0]
mov r13, qword [rdx + 0x20]
xor ecx, ecx
mov r14, qword [rbp + 0xd0]
mov r11d, ecx
mov ebx, ecx
mov qword [rbp + 0x90], rax
mov qword [rbp + 0xc8], r15
mov r9d, ecx
test r15, r15
jle 0x180050d94
mov rcx, qword [rbp + 0x80]
lea r8, [r13 + 2]
mov r10, r15
mov r15, qword [rbp + 0x90]
nop word [rax + rax]
movsx edi, word [r8 - 2]
mov eax, r11d
imul eax, dword [rdx + 8]
movaps xmm1, xmm12
imul edi, r12d
add eax, r9d
cdqe
movss xmm0, dword [rcx + rax*4]
movsx eax, word [r8]
addss xmm0, xmm2
imul eax, r12d
divss xmm1, xmm0
cmp edi, eax
jge 0x180050d7a
movsxd rcx, edi
movsxd rax, ebx
add rcx, rax
lea rdx, [r15 + rcx*4]
mov rcx, r14
sub rcx, r15
nop word [rax + rax]
movaps xmm0, xmm1
inc edi
mulss xmm0, dword [rdx + rcx]
lea rdx, [rdx + 4]
movss dword [rdx - 4], xmm0
movsx eax, word [r8]
imul eax, r12d
cmp edi, eax
jl 0x180050d50
mov rcx, qword [rbp + 0x80]
mov rdx, qword [rbp + 0x28]
inc r9d
add r8, 2
sub r10, 1
jne 0x180050d00
mov r15, qword [rbp + 0xc8]
xor ecx, ecx
mov r9d, dword [rbp]
inc r11d
add ebx, esi
cmp r11d, r9d
jl 0x180050cd4
mov r12d, dword [rbp + 0x98]
mov r13d, dword [rbp + 8]
mov r8, qword [rbp + 0x210]
imul eax, r9d, 0xf
cmp r12d, eax
jl 0x180050dd8
test r13d, r13d
jne 0x180050dd8
cmp dword [r8 + 0x1c], 2
jl 0x180050dd8
mov esi, 1
cmp dword [r8 + 0x44], r13d
je 0x180050dda
mov esi, ecx
movsxd rax, dword [rbp + 4]
movabs rcx, 0xffffffffffffff0
lea rdi, [rax*4]
lea rax, [rdi + 0xf]
cmp rax, rdi
ja 0x180050dfc
mov rax, rcx
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea rax, [rdi + 0xf]
lea rdx, [rsp + 0xc0]
mov qword [rbp + 0xd0], rdx
cmp rax, rdi
ja 0x180050e23
mov rax, rcx
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea rax, [rdi + 0xf]
lea rbx, [rsp + 0xc0]
cmp rax, rdi
ja 0x180050e43
mov rax, rcx
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea rcx, [r8 + 0x7c]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0xa0], rax
mov rax, qword [rbp + 0xa8]
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x90], rcx
mov rcx, qword [rbp + 0x60]
mov qword [rsp + 0x88], rax
mov eax, dword [r8 + 0x44]
mov dword [rsp + 0x80], eax
lea rax, [rbp + 0xf0]
mov qword [rsp + 0x78], rax
mov eax, dword [rbp + 0x230]
mov dword [rsp + 0x70], r12d
mov dword [rsp + 0x68], eax
mov rax, qword [rbp + 0xe0]
mov qword [rsp + 0x60], rax
mov eax, dword [r8 + 0x38]
mov dword [rsp + 0x58], eax
mov eax, dword [r8 + 0x30]
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x10]
mov dword [rsp + 0x48], eax
mov rax, qword [rbp + 0x28]
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x40], rax
mov eax, dword [r8 + 0x40]
mov r8d, dword [rbp + 4]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0xc]
mov qword [rsp + 0x30], rdx
mov rdx, qword [rbp + 0xc0]
mov dword [rsp + 0x28], r9d
mov r9d, r13d
mov dword [rsp + 0x20], eax
call fcn.18004c9a0
lea rax, [rdi + 0xf]
movaps xmm6, xmm0
cmp rax, rdi
ja 0x180050f1e
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea r13, [rsp + 0xc0]
mov qword [rbp + 0xc8], r13
test esi, esi
je 0x18005161a
movsxd rdi, dword [rbp + 0x48]
mov eax, 0x5000
mov r8d, dword [rbp + 0x10]
cdq
idiv r12d
mov qword [rsp + 0x50], rbx
mov ecx, 0x50
add eax, 2
mov r9, r13
cmp eax, ecx
mov edx, edi
cmovl eax, ecx
xor ecx, ecx
mov dword [rsp + 0x48], ecx
mov ecx, dword [rbp + 0x230]
movss dword [rsp + 0x40], xmm13
mov dword [rsp + 0x38], ecx
mov ecx, dword [rbp + 0x18]
mov dword [rsp + 0x30], ecx
mov rcx, qword [rbp + 0x90]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x20], eax
call fcn.18004b860
mov rdx, qword [rbp + 0x40]
mov r12d, eax
mov rcx, rdi
cmp rdi, rdx
jge 0x180050fc2
nop
mov eax, dword [r13 + r15*4 - 4]
mov dword [r13 + rcx*4], eax
inc rcx
cmp rcx, rdx
jl 0x180050fb0
mov ebx, dword [rbp + 8]
xor edi, edi
mov eax, dword [rbp + 4]
mov r9d, dword [rbp]
imul eax, r9d
movsxd rcx, eax
shl rcx, 2
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x180050fec
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
movdqa xmm2, xmmword [0x1800d1da0]
sub rsp, rax
movss xmm3, dword [0x1800d15a8]
mov esi, edi
mov r14, qword [rbp + 0x60]
mov r13, qword [rbp + 0x70]
mov eax, dword [rbp + 4]
lea r15, [rsp + 0xc0]
mov qword [rbp + 0xf8], r15
mov r15, qword [rbp + 0xe8]
movsxd r11, ebx
mov ebx, edi
mov r10, r11
cmp r11, rdx
jge 0x180051190
mov rax, rdx
sub rax, r11
cmp rax, 4
jl 0x18005113e
sub rdx, r11
movsxd rax, ebx
inc rax
sub rdx, 4
add rax, r11
shr rdx, 2
mov r9, r13
mov rdi, r13
mov r8, r15
sub r9, r15
sub rdi, r14
sub r8, r14
inc rdx
lea rax, [r14 + rax*4]
lea r10, [r11 + rdx*4]
nop dword [rax]
movss xmm1, dword [rax - 4]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax - 4]
andps xmm0, xmm2
comiss xmm3, xmm0
jbe 0x1800510aa
movss xmm0, dword [r8 + rax - 4]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [rax - 4], xmm1
movss xmm1, dword [rax]
lea rcx, [rax + r8]
movaps xmm0, xmm1
subss xmm0, dword [r9 + rcx]
andps xmm0, xmm2
comiss xmm3, xmm0
jbe 0x1800510d3
movss xmm0, dword [rcx]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [rax], xmm1
movss xmm1, dword [rax + 4]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax + 4]
andps xmm0, xmm2
comiss xmm3, xmm0
jbe 0x1800510fb
movss xmm0, dword [rcx + 4]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [rax + 4], xmm1
movss xmm1, dword [rax + 8]
movaps xmm0, xmm1
subss xmm0, dword [rdi + rax + 8]
andps xmm0, xmm2
comiss xmm3, xmm0
jbe 0x180051123
movss xmm0, dword [rcx + 8]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [rax + 8], xmm1
add rax, 0x10
sub rdx, 1
jne 0x180051080
mov rdx, qword [rbp + 0x40]
mov r9d, dword [rbp]
cmp r10, rdx
jge 0x18005118d
movsxd rcx, ebx
mov rdi, r13
add rcx, r10
mov r8, r15
sub rdi, r15
sub r8, r14
sub rdx, r10
lea rax, [r14 + rcx*4]
movss xmm1, dword [rax]
lea rcx, [rax + r8]
movaps xmm0, xmm1
subss xmm0, dword [rcx + rdi]
andps xmm0, xmm2
comiss xmm3, xmm0
jbe 0x18005117f
movss xmm0, dword [rcx]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [rax], xmm1
add rax, 4
sub rdx, 1
jne 0x180051157
mov rdx, qword [rbp + 0x40]
mov eax, dword [rbp + 4]
inc esi
add ebx, eax
cmp esi, r9d
jl 0x180051030
mov rsi, qword [rbp + 0x210]
xor eax, eax
mov r15, qword [rbp + 0xf8]
mov edx, eax
mov ebx, dword [rbp + 0x230]
mov r14, qword [rbp + 0x238]
mov eax, dword [rsi + 0x44]
lea rcx, [rsi + 0x58]
cmp dword [rsi + 0x1c], 4
mov edi, dword [rbp + 0x34]
mov r8d, dword [rbp + 0xc]
setge dl
mov dword [rsp + 0x80], eax
mov eax, dword [rsi + 0x3c]
mov dword [rsp + 0x78], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x70], edx
mov edx, dword [rbp + 8]
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0xb0]
mov dword [rsp + 0x58], eax
mov rax, qword [rbp + 0x60]
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x48], r9d
mov r9d, dword [rbp + 0x48]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r15
mov r15, qword [rbp + 0x28]
mov dword [rsp + 0x30], edi
mov rcx, r15
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.1800573e0
mov r9, qword [rbp + 0xc8]
mov r8d, dword [rbp + 0x10]
mov edx, dword [rbp + 0xc]
mov ecx, dword [rbp + 8]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], ebx
call fcn.18004bfd0
mov edx, dword [r14 + 0x20]
mov eax, dword [r14 + 0x18]
bsr ecx, edx
sub eax, ecx
add eax, 3
cmp eax, edi
jg 0x1800512c0
mov eax, edx
mov dword [rsi + 0x54], 3
shr eax, 5
lea ecx, [rax + rax]
sub edx, ecx
mov dword [r14 + 0x20], ecx
add edx, dword [r14 + 0x24]
mov dword [r14 + 0x24], edx
cmp ecx, 0x800000
ja 0x1800512c0
nop
shr edx, 0x17
mov rcx, r14
call fcn.1800533e0
mov edx, dword [r14 + 0x24]
shl dword [r14 + 0x20], 8
and edx, 0x7fffff
add dword [r14 + 0x18], 8
shl edx, 8
cmp dword [r14 + 0x20], 0x800000
mov dword [r14 + 0x24], edx
jbe 0x180051290
cmp dword [rsi + 0x44], 0
mov ecx, 8
mov r12, qword [rbp + 0xd0]
mov dword [rbp + 0x30], ecx
je 0x1800512f0
mov eax, 0x55555556
imul dword [rbp + 0x98]
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, ecx
cmovg edx, ecx
mov dword [r12], edx
movsxd rax, dword [rbp + 4]
lea rax, [rax*4]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18005130f
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1800b2b80
mov r9d, dword [rbp]
sub rsp, rcx
mov r8d, ebx
mov rcx, r15
mov r13d, ebx
lea rsi, [rsp + 0xc0]
mov rdx, rsi
mov qword [rbp + 0xb0], rsi
call fcn.18004a320
mov edx, dword [r14 + 0x20]
lea r15d, [rdi*8]
mov ebx, dword [r14 + 0x18]
xor r10d, r10d
bsr eax, edx
mov r9d, r10d
mov dword [rbp + 0x50], r10d
mov dword [rbp + 0x78], r15d
lea ecx, [rax - 0xf]
shr edx, cl
lea eax, [rax*8 + 8]
mov ecx, r10d
mov edi, edx
shr edi, 0xc
lea r10, [0x180000000]
sub edi, 8
cmp edx, dword [r10 + rdi*4 + 0xc8cc0]
seta cl
shl ebx, 3
sub ebx, ecx
movsxd rcx, dword [rbp + 8]
sub ebx, eax
mov qword [rbp + 0xa8], rcx
sub ebx, edi
mov r10, rcx
cmp rcx, qword [rbp + 0x40]
jge 0x180051572
mov r8, rsi
lea rdi, [r12 + rcx*4]
sub r8, r12
mov qword [rbp + 0x98], rdi
mov qword [rbp + 0xc0], r8
mov r11d, 0x30
nop dword [rax + rax]
mov rax, qword [rbp + 0xe0]
mov ecx, r13d
movsx edx, word [rax + r10*2 + 2]
movsx eax, word [rax + r10*2]
sub edx, eax
imul edx, dword [rbp]
shl edx, cl
cmp edx, 0x30
mov r12d, edx
cmovl r12d, r11d
mov r11d, r15d
lea eax, [rdx*8]
mov edx, dword [rbp + 0x68]
cmp eax, r12d
mov ecx, edx
cmovl r12d, eax
xor eax, eax
mov r13d, eax
mov esi, eax
lea eax, [rbx + rdx*8]
sub r11d, r9d
cmp eax, r11d
jge 0x180051540
lea r10, [0x180000000]
nop word [rax + rax]
cmp r13d, dword [r8 + rdi]
jge 0x18005151c
mov r8d, dword [r14 + 0x20]
mov eax, r8d
mov r15d, dword [rdi]
shr eax, cl
sub r8d, eax
cmp esi, r15d
jge 0x180051455
add dword [r14 + 0x24], r8d
cmp esi, r15d
cmovl r8d, eax
mov dword [r14 + 0x20], r8d
cmp r8d, 0x800000
ja 0x1800514b5
nop word [rax + rax]
mov edx, dword [r14 + 0x24]
mov rcx, r14
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [r14 + 0x24]
mov r8d, dword [r14 + 0x20]
and ecx, 0x7fffff
add dword [r14 + 0x18], 8
shl ecx, 8
shl r8d, 8
mov dword [r14 + 0x24], ecx
mov dword [r14 + 0x20], r8d
cmp r8d, 0x800000
jbe 0x180051470
mov r9d, dword [rbp + 0x50]
lea r10, [0x180000000]
mov ebx, dword [r14 + 0x18]
mov rdi, qword [rbp + 0x98]
bsr eax, r8d
lea ecx, [rax - 0xf]
shr r8d, cl
lea eax, [rax*8 + 8]
xor ecx, ecx
mov edx, r8d
shr edx, 0xc
sub edx, 8
cmp r8d, dword [r10 + rdx*4 + 0xc8cc0]
mov r8, qword [rbp + 0xc0]
seta cl
shl ebx, 3
sub ebx, ecx
sub ebx, eax
sub ebx, edx
cmp esi, r15d
jge 0x18005151c
add r9d, r12d
lea eax, [rbx + 8]
add r13d, r12d
mov dword [rbp + 0x50], r9d
sub r11d, r12d
inc esi
mov ecx, 1
cmp eax, r11d
jl 0x180051430
mov r10, qword [rbp + 0xa8]
mov r15d, dword [rbp + 0x78]
test esi, esi
je 0x180051540
mov eax, dword [rbp + 0x68]
dec eax
mov edx, eax
cmp eax, 2
mov eax, 2
cmovl edx, eax
mov dword [rbp + 0x68], edx
mov dword [rdi], r13d
inc r10
mov r13d, dword [rbp + 0x230]
add rdi, 4
mov r11d, 0x30
mov qword [rbp + 0xa8], r10
mov qword [rbp + 0x98], rdi
cmp r10, qword [rbp + 0x40]
jl 0x1800513d0
mov ecx, dword [rbp + 8]
mov esi, dword [rbp]
cmp esi, 2
jne 0x180051725
test r13d, r13d
je 0x1800515a0
mov r9d, dword [rbp + 0x18]
mov r8d, r13d
mov rdx, qword [rbp + 0x90]
mov rcx, qword [rbp + 0x28]
call fcn.18004c700
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0x7c]
lea r9, [0x1800c77c8]
mov rdi, qword [rbp + 0x210]
mov eax, 0x10624dd3
imul r8d
movsxd rcx, dword [rdi + 0xec]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
lea rax, [0x1800c7774]
xor r10d, r10d
movd xmm1, edx
mov edx, r10d
cvtdq2ps xmm1, xmm1
nop
movss xmm0, dword [rax - 4]
comiss xmm0, xmm1
ja 0x1800516af
movss xmm0, dword [rax]
comiss xmm0, xmm1
ja 0x1800516ad
movss xmm0, dword [rax + 4]
comiss xmm0, xmm1
ja 0x1800516a8
add rax, 0xc
add edx, 3
cmp rax, r9
jl 0x1800515e0
jmp 0x1800516af
mov ebx, dword [rbp + 8]
test ebx, ebx
je 0x180051685
cmp dword [rbp + 0x78], 0
je 0x18005164b
movsxd r8, dword [rbp + 0xc]
test r8d, r8d
jle 0x18005163d
mov rcx, r8
mov rdi, r13
mov eax, 1
rep stosd dword [rdi], eax
mov rdx, qword [rbp + 0x40]
xor edi, edi
mov r12d, edi
jmp 0x180050fc7
cmp r12d, 0xf
jge 0x180051685
mov rax, qword [rbp + 0x210]
cmp dword [rax + 0xbc], 2
je 0x180051685
movsxd r8, dword [rbp + 0xc]
test r8d, r8d
jle 0x180051678
shl r8, 2
xor edx, edx
mov rcx, r13
call sub.VCRUNTIME140.dll_memset
mov r12d, dword [rbp + 0x10]
mov rdx, qword [rbp + 0x40]
jmp 0x180050fc5
movsxd r8, dword [rbp + 0xc]
test r8d, r8d
jle 0x18005169a
movsxd rax, dword [rbp + 0x10]
mov rcx, r8
mov rdi, r13
rep stosd dword [rdi], eax
mov rdx, qword [rbp + 0x40]
xor edi, edi
mov r12d, edi
jmp 0x180050fc7
add edx, 2
jmp 0x1800516af
inc edx
cmp edx, ecx
jle 0x1800516d7
lea r11, [0x180000000]
movss xmm0, dword [r11 + rcx*4 + 0xc7770]
addss xmm0, dword [r11 + rcx*4 + 0xc7710]
comiss xmm0, xmm1
jbe 0x1800516fa
mov edx, ecx
jmp 0x1800516fa
jge 0x1800516fa
lea r9, [0x180000000]
movss xmm0, dword [r9 + rcx*4 + 0xc776c]
subss xmm0, dword [r9 + rcx*4 + 0xc770c]
comiss xmm1, xmm0
cmova edx, ecx
mov ecx, dword [rbp + 8]
mov eax, edx
mov r9d, dword [rbp + 0xc]
cmp ecx, edx
cmovg eax, ecx
cmp r9d, eax
jge 0x180051718
mov edx, r9d
mov dword [rdi + 0xec], edx
jmp 0x18005173d
cmp ecx, edx
cmovg edx, ecx
mov dword [rdi + 0xec], edx
jmp 0x18005173d
mov rdi, qword [rbp + 0x210]
xor r10d, r10d
mov r8d, dword [rbp + 0x7c]
mov r9d, dword [rbp + 0xc]
mov edx, dword [rdi + 0xec]
mov r12d, dword [rbp + 0x50]
lea eax, [rbx + 0x30]
sub r15d, r12d
mov r13d, 5
cmp eax, r15d
jg 0x1800518a9
test ecx, ecx
jg 0x1800517e3
cmp dword [rdi + 0x44], 0
jne 0x1800517e3
mov dword [rsp + 0x60], r8d
lea rax, [rdi + 0xe8]
mov r8, qword [rbp + 0x60]
lea rcx, [rdi + 0x7c]
movss dword [rsp + 0x58], xmm10
mov dword [rsp + 0x50], edx
mov rdx, qword [rbp + 0x90]
movss dword [rsp + 0x48], xmm13
mov qword [rsp + 0x40], rax
mov eax, dword [rbp + 0x18]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x230]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], eax
call fcn.18004c240
mov r8d, dword [r14 + 0x20]
lea rdx, [0x1800c77c8]
mov ecx, r8d
movsxd r13, eax
shr ecx, 7
lea rdi, [r14 + 0x20]
add rdx, r13
test eax, eax
jg 0x1800517ff
movzx eax, byte [rdx]
imul eax, ecx
sub r8d, eax
jmp 0x18005181c
mov r8d, dword [r14 + 0x20]
lea rdx, [0x1800c77cd]
mov ecx, r8d
mov dword [rdi + 0xe8], r10d
shr ecx, 7
lea rdi, [r14 + 0x20]
movzx eax, byte [rdx - 1]
imul eax, ecx
sub r8d, eax
add dword [r14 + 0x24], r8d
movzx r8d, byte [rdx - 1]
movzx eax, byte [rdx]
sub r8d, eax
imul r8d, ecx
mov dword [rdi], r8d
cmp r8d, 0x800000
ja 0x18005186a
nop dword [rax + rax]
mov edx, dword [r14 + 0x24]
mov rcx, r14
shr edx, 0x17
call fcn.1800533e0
mov ecx, dword [r14 + 0x24]
mov r8d, dword [r14 + 0x20]
and ecx, 0x7fffff
add dword [r14 + 0x18], 8
shl ecx, 8
shl r8d, 8
mov dword [r14 + 0x24], ecx
mov dword [r14 + 0x20], r8d
cmp r8d, 0x800000
jbe 0x180051830
mov ebx, dword [r14 + 0x18]
lea r9, [0x180000000]
bsr eax, r8d
xor r10d, r10d
lea ecx, [rax - 0xf]
shr r8d, cl
lea eax, [rax*8 + 8]
mov edx, r8d
mov ecx, r10d
shr edx, 0xc
sub edx, 8
cmp r8d, dword [r9 + rdx*4 + 0xc8cc0]
seta cl
shl ebx, 3
sub ebx, ecx
sub ebx, eax
sub ebx, edx
mov edi, dword [rbp + 0xa4]
test edi, edi
jle 0x180051b7d
mov r9d, dword [rbp + 0x230]
mov ecx, 3
mov r11, qword [rbp + 0x28]
sub ecx, r9d
mov edx, dword [rbp + 8]
mov eax, 0x4fb
sar eax, cl
mov ecx, dword [rbp + 0x14]
mov r15d, dword [r11 + 0x28]
sub r15d, r9d
cmp ecx, eax
cmovge ecx, eax
mov esi, ecx
test edx, edx
jne 0x1800518ff
mov edx, dword [rbp]
lea eax, [rdx + rdx*4]
mov edx, dword [rbp + 8]
shl eax, 6
sub edi, eax
sub edi, 0xa0
jmp 0x180051911
mov eax, dword [rbp]
lea ecx, [rax + rax*8]
shl ecx, 3
sub edi, ecx
add edi, 0xffffffe0
cmovs edi, r10d
mov r10, qword [rbp + 0x210]
mov r8d, dword [r10 + 0x38]
test r8d, r8d
je 0x18005192f
mov eax, dword [r10 + 0xdc]
mov ecx, r15d
sar eax, cl
add edi, eax
test edx, edx
jne 0x1800519e5
movss xmm0, dword [r10 + 0xe8]
lea rdx, [r10 + 0x7c]
movss dword [rsp + 0x88], xmm9
xor eax, eax
cmp qword [r10 + 0xf0], rax
mov rcx, r11
movss dword [rsp + 0x80], xmm11
setne al
mov dword [rsp + 0x78], eax
mov eax, dword [r10 + 0x44]
mov dword [rsp + 0x70], eax
mov eax, dword [rbp + 0xdc]
movss dword [rsp + 0x68], xmm6
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0xf0]
movss dword [rsp + 0x58], xmm13
mov dword [rsp + 0x50], eax
mov eax, dword [r10 + 0xec]
movss dword [rsp + 0x48], xmm0
mov dword [rsp + 0x40], r8d
mov r8d, edi
mov dword [rsp + 0x38], eax
mov eax, dword [rbp]
mov dword [rsp + 0x30], eax
mov eax, dword [r10 + 0x60]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x7c]
mov dword [rsp + 0x20], eax
call fcn.18004f040
mov r10, qword [rbp + 0x210]
lea ecx, [r12 + 0x3f]
add ecx, ebx
sar ecx, 6
add ecx, 2
lea r8d, [rbx + rax]
jmp 0x180051a6d
cmp dword [r10 + 0xc0], 0x64
jge 0x180051a02
mov ecx, 3
mov edx, 0x60
sub ecx, r9d
sar edx, cl
add edx, edi
jmp 0x180051a17
mov edx, edi
jle 0x180051a17
mov ecx, 3
mov eax, 0x90
sub ecx, r9d
sar eax, cl
sub edx, eax
movaps xmm0, xmm13
lea ecx, [r12 + 0x3f]
subss xmm0, xmm7
mulss xmm0, dword [0x1800d165c]
cvttss2si eax, xmm0
add edx, eax
comiss xmm13, dword [0x1800d14cc]
jbe 0x180051a4e
mov r8d, 0x190
cmp edx, r8d
cmovg r8d, edx
add r8d, ebx
jmp 0x180051a52
lea r8d, [rdx + rbx]
mov eax, dword [rbp + 0x6c]
add ecx, ebx
add eax, 0x167
sar ecx, 6
add eax, r12d
add ecx, 2
sar eax, 6
cmp ecx, eax
cmovle ecx, eax
mov edx, dword [rbp + 0xa4]
lea ebx, [r8 + 0x20]
mov r9d, dword [rbp + 0x38]
sar ebx, 6
cmp ecx, ebx
cmovg ebx, ecx
cmp esi, ebx
cmovl ebx, esi
sub r8d, edx
mov ecx, ebx
shl ecx, 6
test r9d, r9d
je 0x180051a9f
mov ebx, 2
mov ecx, 0x80
mov eax, dword [r10 + 0xe0]
xor r11d, r11d
test r9d, r9d
mov edi, r11d
cmove edi, r8d
cmp eax, 0x3ca
jge 0x180051ad4
inc eax
mov dword [r10 + 0xe0], eax
add eax, 0x14
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm12, xmm0
jmp 0x180051add
movss xmm12, dword [0x1800d13e8]
cmp dword [r10 + 0x38], r11d
je 0x180051b51
mov r8d, dword [r10 + 0xd4]
sub r8d, edx
mov edx, dword [r10 + 0xd8]
add r8d, ecx
mov ecx, r15d
shl edi, cl
sub edi, edx
mov dword [r10 + 0xd4], r8d
sub edi, dword [r10 + 0xdc]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm12
cvttss2si ecx, xmm0
add ecx, edx
mov dword [r10 + 0xd8], ecx
neg ecx
mov dword [r10 + 0xdc], ecx
test r8d, r8d
jns 0x180051b51
mov eax, r8d
mov dword [r10 + 0xd4], r11d
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
neg eax
test r9d, r9d
cmovne eax, r11d
add ebx, eax
mov r8d, dword [r14 + 0xc]
cmp esi, ebx
mov edx, dword [r14 + 8]
cmovl ebx, esi
sub rdx, r8
add rdx, qword [r14]
mov ecx, ebx
sub rcx, r8
mov dword [rbp + 0x14], ebx
add rcx, qword [r14]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [rbp]
mov dword [r14 + 8], ebx
jmp 0x180051b80
mov ebx, dword [rbp + 0x14]
movsxd rax, dword [rbp + 4]
movabs rdx, 0xffffffffffffff0
lea rcx, [rax*4]
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x180051ba2
mov rax, rdx
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea rax, [rcx + 0xf]
lea r12, [rsp + 0xc0]
cmp rax, rcx
ja 0x180051bc2
mov rax, rdx
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea rax, [rcx + 0xf]
lea r15, [rsp + 0xc0]
cmp rax, rcx
ja 0x180051be2
mov rax, rdx
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
mov r8d, dword [r14 + 0x20]
lea r11, [0x180000000]
sub rsp, rax
xor r10d, r10d
bsr edx, r8d
lea r9, [rsp + 0xc0]
inc edx
mov qword [rbp + 0xc0], r9
lea ecx, [rdx - 0x10]
shr r8d, cl
lea eax, [rdx + rbx*8]
mov edi, r8d
mov ecx, r10d
shr edi, 0xc
sub edi, 8
cmp r8d, dword [r11 + rdi*4 + 0xc8cc0]
seta cl
lea edx, [rcx + rax*8]
mov eax, dword [r14 + 0x18]
shl eax, 3
sub edx, eax
dec edx
add edx, edi
mov edi, dword [rbp + 0x230]
cmp dword [rbp + 0x10], r10d
je 0x180051c64
cmp edi, 2
jl 0x180051c64
lea eax, [rdi*8 + 0x10]
cmp edx, eax
jl 0x180051c64
mov eax, 8
jmp 0x180051c6a
mov eax, r10d
mov dword [rbp + 0x30], eax
mov r8, qword [rbp + 0x210]
sub edx, eax
mov r11d, dword [rbp + 0xc]
lea ecx, [r11 - 1]
cmp dword [r8 + 0x7c], r10d
je 0x180051cd8
mov r10d, dword [rbp + 0x7c]
imul eax, esi, 0x7d00
cmp r10d, eax
jge 0x180051c97
mov ecx, 0xd
jmp 0x180051ccc
imul eax, esi, 0xbb80
cmp r10d, eax
jge 0x180051ca9
mov ecx, 0x10
jmp 0x180051ccc
imul eax, esi, 0xea60
cmp r10d, eax
jge 0x180051cbb
mov ecx, 0x12
jmp 0x180051ccc
xor ecx, ecx
imul eax, esi, 0x13880
cmp r10d, eax
setge cl
add ecx, 0x13
mov eax, dword [r8 + 0x9c]
cmp eax, ecx
cmovg ecx, eax
cmp dword [r8 + 0x44], 0
lea rbx, [r8 + 0x60]
mov eax, 1
lea rsi, [r8 + 0xec]
cmovne ecx, eax
mov r8d, r11d
mov eax, dword [rbx]
mov dword [rsp + 0x90], ecx
mov rcx, qword [rbp + 0x28]
mov dword [rsp + 0x88], eax
mov eax, dword [rbp]
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x68], eax
lea rax, [rbp + 0x6c]
mov qword [rsp + 0x60], r9
mov r9, qword [rbp + 0xd0]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0xb8]
mov dword [rsp + 0x40], edx
mov edx, dword [rbp + 8]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0xb0]
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rax
call fcn.180058d30
mov edx, dword [rbx]
mov edi, eax
test edx, edx
je 0x180051d93
lea eax, [rdx - 1]
mov ecx, edi
cmp eax, edi
cmovg ecx, eax
inc edx
cmp edx, ecx
jl 0x180051d83
cmp eax, edi
mov edx, edi
cmovg edx, eax
mov rsi, qword [rbp + 0x210]
add rsi, 0xec
jmp 0x180051d95
mov edx, edi
mov r13, qword [rbp + 0xf8]
mov r9, qword [rbp + 0x70]
mov r8d, dword [rbp + 0xc]
mov rcx, qword [rbp + 0x28]
mov dword [rbx], edx
mov ebx, dword [rbp]
mov edx, dword [rbp + 8]
mov dword [rsp + 0x38], ebx
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
call fcn.180057af0
mov eax, dword [rbp + 4]
imul eax, ebx
movsxd rcx, eax
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x180051de4
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1800b2b80
sub rsp, rax
lea r9, [rsp + 0xc0]
cmp ebx, 2
jne 0x180051e0e
movsxd rax, dword [rbp + 0x18]
mov rcx, qword [rbp + 0x90]
lea r8, [rcx + rax*4]
jmp 0x180051e13
xor eax, eax
mov r8d, eax
mov r10, qword [rbp + 0x210]
mov edx, dword [rbp + 0x14]
mov ebx, dword [rbp + 0x30]
shl edx, 6
mov eax, dword [r10 + 0x48]
lea rcx, [r10 + 0x50]
mov dword [rsp + 0xb0], eax
sub edx, ebx
mov eax, dword [r10 + 0x4c]
mov dword [rsp + 0xa8], eax
mov eax, dword [r10 + 0x1c]
mov dword [rsp + 0xa0], eax
mov eax, dword [rbp + 0x230]
mov qword [rsp + 0x98], rcx
mov ecx, 1
mov dword [rsp + 0x90], edi
mov dword [rsp + 0x88], eax
mov eax, dword [rbp + 0x6c]
mov qword [rsp + 0x80], r14
mov dword [rsp + 0x78], eax
mov rax, qword [rbp + 0xc8]
mov dword [rsp + 0x70], edx
mov qword [rsp + 0x68], rax
mov eax, dword [rsi]
mov rsi, qword [rbp + 0x28]
mov dword [rsp + 0x60], eax
mov rdx, rsi
mov eax, dword [rbp + 0xb8]
mov dword [rsp + 0x58], eax
mov eax, dword [r10 + 0x54]
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x1c]
mov dword [rsp + 0x48], eax
mov rax, qword [rbp + 0x80]
mov qword [rsp + 0x40], r15
mov r15d, dword [rbp + 0xc]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x30], r9
mov r9d, r15d
mov qword [rsp + 0x28], r8
mov r8d, dword [rbp + 8]
mov qword [rsp + 0x20], rax
call fcn.180048be0
test ebx, ebx
je 0x180051f66
mov rax, qword [rbp + 0x210]
xor ebx, ebx
mov edi, dword [r14 + 0x14]
mov r10d, ebx
mov r8d, dword [r14 + 0x10]
cmp dword [rax + 0x78], 2
lea eax, [rdi + 1]
setl r10b
cmp eax, 0x20
jbe 0x180051f4d
nop
mov ecx, dword [r14 + 0x1c]
mov r9d, dword [r14 + 0xc]
add ecx, r9d
mov edx, dword [r14 + 8]
cmp ecx, edx
jb 0x180051f2a
mov eax, 0xffffffff
jmp 0x180051f3d
lea eax, [r9 + 1]
mov dword [r14 + 0xc], eax
sub edx, eax
mov rax, qword [r14]
mov byte [rdx + rax], r8b
mov eax, ebx
or dword [r14 + 0x30], eax
sub edi, 8
shr r8d, 8
cmp edi, 8
jge 0x180051f10
mov ecx, edi
lea eax, [rdi + 1]
shl r10d, cl
or r10d, r8d
mov dword [r14 + 0x14], eax
inc dword [r14 + 0x18]
mov dword [r14 + 0x10], r10d
jmp 0x180051f68
xor ebx, ebx
bsr edx, dword [r14 + 0x20]
mov eax, dword [rbp + 0x14]
mov r8d, r15d
mov r9, qword [rbp + 0x70]
inc edx
mov rcx, rsi
lea eax, [rax*8]
sub eax, dword [r14 + 0x18]
add edx, eax
mov eax, dword [rbp]
mov dword [rsp + 0x48], eax
mov rax, qword [rbp + 0xc0]
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
movsxd r12, dword [rbp + 8]
mov edx, r12d
mov qword [rsp + 0x20], r13
call fcn.180057cf0
mov eax, dword [rbp + 4]
xor edx, edx
imul eax, dword [rbp + 0x20]
mov r14, qword [rbp + 0xe8]
mov rcx, r14
movsxd r8, eax
lea r8, [r8*4]
call sub.VCRUNTIME140.dll_memset
movdqa xmm4, xmmword [0x1800d1de0]
mov r11d, ebx
movdqa xmm5, xmmword [0x1800d1a70]
mov r10d, ebx
movss xmm3, dword [0x1800d16b8]
mov ebx, r15d
mov r8, qword [rbp + 0x40]
sub ebx, r12d
mov eax, r15d
lea r15d, [rbx - 1]
jmp 0x180052013
mov eax, dword [rbp + 0xc]
mov edi, r12d
cmp r12d, eax
jge 0x1800520f9
cmp ebx, 0x10
jb 0x1800520f9
lea eax, [r10 + r12]
movsxd rdx, eax
add eax, r15d
movsxd rcx, eax
lea r9, [rdx*4]
lea r8, [r14 + rcx*4]
add r9, r13
lea rcx, [rcx*4]
add rcx, r13
lea rax, [r14 + rdx*4]
cmp rax, rcx
ja 0x180052061
cmp r8, r9
jae 0x1800520f5
mov ecx, ebx
mov rdx, r12
and ecx, 0x8000000f
jge 0x180052075
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, dword [rbp + 0xc]
sub eax, ecx
movsxd rcx, r10d
add rcx, 4
movsxd r8, eax
add rcx, r12
lea rax, [r14 + rcx*4]
mov rcx, r13
sub rcx, r14
movups xmm0, xmmword [rax + rcx - 0x10]
lea rax, [rax + 0x40]
add edi, 0x10
movaps xmm1, xmm5
movaps xmm2, xmm4
minps xmm1, xmm0
add rdx, 0x10
movups xmm0, xmmword [rax + rcx - 0x40]
maxps xmm2, xmm1
movaps xmm1, xmm5
movups xmmword [rax - 0x50], xmm2
movaps xmm2, xmm4
minps xmm1, xmm0
movups xmm0, xmmword [rax + rcx - 0x30]
maxps xmm2, xmm1
movaps xmm1, xmm5
movups xmmword [rax - 0x40], xmm2
movaps xmm2, xmm4
minps xmm1, xmm0
movups xmm0, xmmword [rax + rcx - 0x20]
maxps xmm2, xmm1
movaps xmm1, xmm5
movups xmmword [rax - 0x30], xmm2
movaps xmm2, xmm4
minps xmm1, xmm0
maxps xmm2, xmm1
movups xmmword [rax - 0x20], xmm2
cmp rdx, r8
jl 0x180052091
mov r8, qword [rbp + 0x40]
movsxd rdi, edi
cmp rdi, r8
jge 0x1800521e6
mov rax, r8
sub rax, rdi
cmp rax, 4
jl 0x1800521a9
movsxd rcx, r10d
mov rdx, r8
inc rcx
sub rdx, rdi
add rcx, rdi
sub rdx, 4
shr rdx, 2
lea rax, [r14 + rcx*4]
mov rcx, r13
sub rcx, r14
inc rdx
lea rdi, [rdi + rdx*4]
nop dword [rax]
movaps xmm0, xmm8
minss xmm0, dword [rax + rcx - 4]
comiss xmm3, xmm0
jbe 0x180052152
movaps xmm0, xmm3
movaps xmm1, xmm8
movss dword [rax - 4], xmm0
minss xmm1, dword [rax + rcx]
comiss xmm3, xmm1
jbe 0x180052168
movaps xmm1, xmm3
movaps xmm0, xmm8
movss dword [rax], xmm1
minss xmm0, dword [rax + rcx + 4]
comiss xmm3, xmm0
jbe 0x18005217e
movaps xmm0, xmm3
movss dword [rax + 4], xmm0
movaps xmm0, xmm8
minss xmm0, dword [rax + rcx + 8]
comiss xmm3, xmm0
jbe 0x180052195
movaps xmm0, xmm3
movss dword [rax + 8], xmm0
add rax, 0x10
sub rdx, 1
jne 0x180052140
cmp rdi, r8
jge 0x1800521e6
movsxd rcx, r10d
mov rdx, r13
add rcx, rdi
sub rdx, r14
lea rax, [r14 + rcx*4]
mov rcx, r8
sub rcx, rdi
mov edi, dword [rbp + 0x38]
movaps xmm0, xmm8
minss xmm0, dword [rax + rdx]
comiss xmm3, xmm0
jbe 0x1800521d3
movaps xmm0, xmm3
movss dword [rax], xmm0
add rax, 4
sub rcx, 1
jne 0x1800521c2
mov dword [rbp + 0x38], edi
jmp 0x1800521e9
mov edi, dword [rbp + 0x38]
add r10d, dword [rbp + 4]
inc r11d
mov ecx, dword [rbp]
cmp r11d, ecx
jl 0x180052010
mov rbx, qword [rbp + 0x70]
test edi, edi
mov edi, dword [rbp + 4]
je 0x180052225
mov eax, edi
imul eax, ecx
test eax, eax
jle 0x180052225
movsxd rcx, eax
mov rdi, rbx
mov rax, 0xffffffffc1e00000
rep stosd dword [rdi], eax
mov ecx, dword [rbp]
mov edi, dword [rbp + 4]
mov rax, qword [rbp + 0x210]
mov edx, dword [rbp + 0xa0]
mov r15d, dword [rbp + 0x20]
mov dword [rax + 0x6c], edx
mov edx, dword [rbp + 0x4c]
mov dword [rax + 0x74], edx
movss dword [rax + 0x70], xmm14
cmp r15d, 2
jne 0x18005226a
cmp ecx, 1
jne 0x18005226a
movsxd rax, edi
mov rdx, rbx
lea r8, [rax*4]
movsxd rax, edi
lea rcx, [rbx + rax*4]
call sub.VCRUNTIME140.dll_memcpy_1
mov edx, edi
imul edx, r15d
cmp dword [rbp + 0x10], 0
jne 0x1800522b3
mov rcx, qword [rbp + 0x88]
movsxd r8, edx
mov rdx, qword [rbp + 0x58]
lea r8, [r8*4]
call sub.VCRUNTIME140.dll_memcpy_1
mov rcx, qword [rbp + 0x58]
mov eax, edi
imul eax, r15d
mov rdx, rbx
movsxd r8, eax
lea r8, [r8*4]
call sub.VCRUNTIME140.dll_memcpy_1
jmp 0x180052413
mov rsi, qword [rbp + 0x58]
xor r10d, r10d
mov r8d, r10d
test edx, edx
jle 0x180052361
cmp edx, 0x10
jb 0x180052361
lea eax, [rdx - 1]
movsxd rcx, eax
lea rax, [rbx + rcx*4]
lea rdi, [rsi + rcx*4]
cmp rsi, rax
ja 0x1800522e6
cmp rdi, rbx
jae 0x180052361
mov ecx, edx
and ecx, 0x8000000f
jge 0x1800522f7
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, edx
mov rdi, r10
sub eax, ecx
mov rcx, rbx
movsxd r9, eax
sub rcx, rsi
lea rax, [rsi + 0x10]
nop dword [rax + rax]
movups xmm1, xmmword [rax - 0x10]
add r8d, 0x10
add rdi, 0x10
movups xmm0, xmmword [rcx + rax - 0x10]
lea rax, [rax + 0x40]
minps xmm1, xmm0
movups xmm0, xmmword [rcx + rax - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rax - 0x40]
minps xmm1, xmm0
movups xmm0, xmmword [rcx + rax - 0x30]
movups xmmword [rax - 0x40], xmm1
movups xmm1, xmmword [rax - 0x30]
minps xmm1, xmm0
movups xmm0, xmmword [rcx + rax - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rax - 0x20]
minps xmm1, xmm0
movups xmmword [rax - 0x20], xmm1
cmp rdi, r9
jl 0x180052310
movsxd r8, r8d
movsxd rdi, edx
cmp r8, rdi
jge 0x180052413
mov rax, rdi
sub rax, r8
cmp rax, 4
jl 0x1800523ee
lea rax, [r8 + 1]
mov rdx, rdi
sub rdx, r8
lea rax, [rsi + rax*4]
sub rdx, 4
mov rcx, rbx
shr rdx, 2
sub rcx, rsi
inc rdx
lea r8, [r8 + rdx*4]
nop
movss xmm0, dword [rax - 4]
movss xmm1, dword [rax]
minss xmm0, dword [rcx + rax - 4]
lea rax, [rax + 0x10]
movss dword [rax - 0x14], xmm0
movss xmm0, dword [rax - 0xc]
minss xmm1, dword [rcx + rax - 0x10]
movss dword [rax - 0x10], xmm1
movss xmm1, dword [rax - 8]
minss xmm0, dword [rcx + rax - 0xc]
movss dword [rax - 0xc], xmm0
minss xmm1, dword [rcx + rax - 8]
movss dword [rax - 8], xmm1
sub rdx, 1
jne 0x1800523a0
cmp r8, rdi
jge 0x180052413
mov rcx, rbx
lea rax, [rsi + r8*4]
sub rcx, rsi
sub rdi, r8
movss xmm0, dword [rax]
minss xmm0, dword [rax + rcx]
lea rax, [rax + 4]
movss dword [rax - 4], xmm0
sub rdi, 1
jne 0x1800523fb
mov edi, dword [rbp + 0xc]
xor r8d, r8d
mov r9d, dword [rbp + 4]
mov edx, edi
mov ecx, dword [rbp + 8]
mov r11d, r9d
mov eax, ecx
mov qword [rbp + 0xe8], r12
sub eax, r9d
mov dword [rbp + 0x230], edx
sub r11d, edi
mov dword [rbp + 0x6c], eax
mov r15, r12
mov dword [rbp + 0x4c], r11d
mov r13d, r8d
mov r12d, r8d
mov r14d, edi
lea r10d, [r11 - 1]
mov dword [rbp + 0xa0], r10d
nop dword [rax + rax]
mov esi, r8d
test ecx, ecx
jle 0x180052562
cmp ecx, 4
jb 0x180052562
mov rdi, qword [rbp + 0x58]
add eax, r10d
add eax, edx
movsxd rcx, r12d
movsxd rdx, eax
mov rax, qword [rbp + 0x88]
lea r9, [rdi + rcx*4]
lea rdi, [rdi + rdx*4]
lea r10, [rax + rdx*4]
lea r8, [rax + rcx*4]
cmp r9, r10
ja 0x1800524a8
cmp rdi, r8
jae 0x18005255a
lea rax, [rbx + rcx*4]
lea rcx, [rbx + rdx*4]
cmp r9, rcx
ja 0x1800524be
cmp rdi, rax
jae 0x18005255a
cmp r8, rcx
ja 0x1800524cc
cmp r10, rax
jae 0x18005255a
mov ecx, dword [rbp + 8]
mov eax, ecx
and eax, 0x80000003
jge 0x1800524df
dec eax
or eax, 0xfffffffc
inc eax
sub ecx, eax
add esi, 4
cmp esi, ecx
jl 0x1800524e1
lea eax, [rcx + 3]
mov rcx, qword [rbp + 0x70]
cdq
and edx, 3
add eax, edx
xor edx, edx
sar eax, 2
movsxd rbx, eax
movsxd rax, r12d
shl rbx, 4
mov r8, rbx
and r8, 0xfffffffffffffffc
lea rcx, [rcx + rax*4]
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rbp + 0x88]
mov rcx, rbx
shr rcx, 2
movsxd rax, r12d
shr rbx, 2
lea rdi, [r9 + rax*4]
mov rax, 0xffffffffc1e00000
rep stosd dword [rdi], eax
mov rcx, qword [rbp + 0x58]
movsxd rax, r12d
lea rdi, [rcx + rax*4]
mov rax, 0xffffffffc1e00000
mov rcx, rbx
rep stosd dword [rdi], eax
mov r11d, dword [rbp + 0x4c]
mov r10d, dword [rbp + 0xa0]
jmp 0x18005255e
lea r10d, [r11 - 1]
mov r9d, dword [rbp + 4]
mov rbx, qword [rbp + 0x70]
movsxd r8, esi
mov rsi, qword [rbp + 0x88]
cmp r8, r15
jge 0x1800525b0
mov rdi, qword [rbp + 0x58]
mov rdx, rbx
movsxd rcx, r12d
sub rdx, rsi
add rcx, r8
sub rdi, rsi
lea rax, [rsi + rcx*4]
mov rcx, r15
sub rcx, r8
xor r8d, r8d
mov dword [rax + rdx], r8d
mov dword [rax], 0xc1e00000
mov dword [rdi + rax], 0xc1e00000
lea rax, [rax + 4]
sub rcx, 1
jne 0x180052595
mov edx, dword [rbp + 0xc]
mov r15d, edx
cmp edx, r9d
jge 0x1800526a6
cmp r11d, 4
jb 0x1800526a6
mov rdi, qword [rbp + 0x58]
lea eax, [r10 + r12]
add eax, edx
movsxd rcx, r14d
movsxd rdx, eax
lea r9, [rdi + rcx*4]
lea r10, [rsi + rdx*4]
lea rdi, [rdi + rdx*4]
lea r8, [rsi + rcx*4]
cmp r9, r10
ja 0x1800525f7
cmp rdi, r8
jae 0x1800526a2
lea rax, [rbx + rcx*4]
lea rcx, [rbx + rdx*4]
cmp r9, rcx
ja 0x18005260d
cmp rdi, rax
jae 0x1800526a2
cmp r8, rcx
ja 0x18005261b
cmp r10, rax
jae 0x1800526a2
mov ecx, r11d
and ecx, 0x80000003
jge 0x18005262d
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [rbp + 4]
sub eax, ecx
add r15d, 4
cmp r15d, eax
jl 0x180052632
mov ecx, dword [rbp + 0xc]
sub eax, ecx
add eax, 3
cdq
and edx, 3
add eax, edx
xor edx, edx
sar eax, 2
movsxd rsi, eax
lea eax, [r12 + rcx]
movsxd rbx, eax
mov rax, qword [rbp + 0x70]
shl rsi, 4
mov r8, rsi
and r8, 0xfffffffffffffffc
lea rcx, [rax + rbx*4]
call sub.VCRUNTIME140.dll_memset
mov r10, qword [rbp + 0x88]
mov rcx, rsi
mov r11, qword [rbp + 0x58]
mov rax, 0xffffffffc1e00000
shr rcx, 2
shr rsi, 2
lea rdi, [r10 + rbx*4]
rep stosd dword [rdi], eax
lea rdi, [r11 + rbx*4]
mov rcx, rsi
rep stosd dword [rdi], eax
mov r9d, dword [rbp + 4]
jmp 0x1800526b1
mov r9d, dword [rbp + 4]
mov r10, qword [rbp + 0x88]
mov r11, qword [rbp + 0x58]
mov rsi, qword [rbp + 0x100]
mov rbx, qword [rbp + 0x70]
movsxd r8, r15d
cmp r8, rsi
jge 0x180052700
movsxd rcx, r12d
mov rdx, rbx
add rcx, r8
mov rdi, r11
sub rdx, r10
sub rdi, r10
lea rax, [r10 + rcx*4]
mov rcx, rsi
sub rcx, r8
xor r8d, r8d
mov dword [rax + rdx], r8d
mov dword [rax], 0xc1e00000
mov dword [rdi + rax], 0xc1e00000
lea rax, [rax + 4]
sub rcx, 1
jne 0x1800526e3
jmp 0x180052703
xor r8d, r8d
mov edx, dword [rbp + 0x230]
inc r13d
mov r11d, dword [rbp + 0x4c]
add edx, r9d
mov r15, qword [rbp + 0xe8]
add r12d, r9d
mov eax, dword [rbp + 0x6c]
add r14d, r9d
mov ecx, dword [rbp + 8]
lea r10d, [r11 - 1]
mov dword [rbp + 0x230], edx
cmp r13d, dword [rbp + 0x20]
jl 0x180052460
cmp dword [rbp + 0x10], 0
mov r14, qword [rbp + 0x238]
jne 0x18005275d
cmp dword [rbp + 0xd8], 0
jne 0x18005275d
mov rax, qword [rbp + 0x210]
mov dword [rax + 0x78], r8d
jmp 0x180052767
mov rax, qword [rbp + 0x210]
inc dword [rax + 0x78]
mov ecx, dword [r14 + 0x20]
mov dword [rax + 0x50], ecx
mov rcx, r14
call fcn.180053650
cmp dword [r14 + 0x30], 0
mov ecx, 0xfffffffd
mov eax, dword [rbp + 0x14]
cmovne eax, ecx
jmp 0x18005278d
mov eax, 0xffffffff
mov rbx, qword [rbp + 0x220]
movaps xmm6, xmmword [rbp + 0x1c0]
movaps xmm7, xmmword [rbp + 0x1b0]
movaps xmm8, xmmword [rbp + 0x1a0]
movaps xmm9, xmmword [rbp + 0x190]
movaps xmm10, xmmword [rbp + 0x180]
movaps xmm11, xmmword [rbp + 0x170]
movaps xmm12, xmmword [rbp + 0x160]
movaps xmm13, xmmword [rbp + 0x150]
movaps xmm14, xmmword [rbp + 0x140]
lea rsp, [rbp + 0x1d0]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret