Function at 0x18006a91c
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xe8]
sub rsp, 0x1b0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
mov rax, qword [0x18009a010]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov r15d, r9d
mov dword [rsp + 0x40], r8d
mov r11d, edx
mov dword [rsp + 0x50], edx
mov qword [rsp + 0x70], rcx
mov r14, qword [0x18009efb8]
mov qword [rbp - 0x70], r14
mov rax, qword [r14 + 0x4008]
mov edi, 1
mov byte [rax + 0xb8], dil
mov r13, qword [r14 + 0x4008]
xor ebx, ebx
cmp byte [r13 + 0xbb], bl
je 0x18006a9c7
xor al, al
jmp 0x18006bcaf
mov r10d, r15d
and r10d, 0x3000000
mov dword [rsp + 0x5c], r10d
lea rcx, [rsp + 0x38]
call fcn.1800301b0
xorps xmm13, xmm13
movss xmm10, dword [0x18001dc94]
test r10d, r10d
je 0x18006a9ff
movss xmm3, dword [rsp + 0x3c]
maxss xmm3, xmm10
jmp 0x18006aa02
xorps xmm3, xmm3
movss xmm2, dword [rsp + 0x38]
maxss xmm2, xmm10
mov r12, qword [rbp + 0x110]
mov rdx, qword [r12]
lea rcx, [rsp + 0x38]
call fcn.180030074
movss xmm12, dword [r13 + 0x104]
movss xmm8, dword [rsp + 0x3c]
addss xmm8, xmm12
movss xmm11, dword [r13 + 0x100]
movss xmm9, dword [rsp + 0x38]
addss xmm9, xmm11
movss dword [rsp + 0x60], xmm11
movss dword [rsp + 0x64], xmm12
movss dword [rsp + 0x68], xmm9
movss dword [rsp + 0x6c], xmm8
cmp byte [r13 + 0xd0], bl
jg 0x18006aa7d
cmp byte [r13 + 0xd1], bl
mov r8b, bl
jle 0x18006aa80
mov r8b, dil
mov byte [rsp + 0x30], r8b
test r10d, r10d
je 0x18006aacc
lea rcx, [rsp + 0x60]
call fcn.180025048
test al, al
je 0x18006aacc
test r8b, r8b
jne 0x18006aacc
subss xmm9, xmm11
movss dword [rsp + 0x38], xmm9
subss xmm8, xmm12
movss dword [rsp + 0x3c], xmm8
movss xmm1, dword [0x18001de5c]
lea rcx, [rsp + 0x38]
call fcn.18002f9ac
jmp 0x18006a9c0
lea rbx, [r14 + 0x4dc8]
lea rcx, [rbx + 0x10]
mov edx, r11d
call fcn.180020fd8
mov rcx, rax
cmp dword [rax], 0xffffffff
je 0x18006aaf7
movsxd rax, dword [rax]
imul rdi, rax, 0x250
add rdi, qword [rbx + 8]
jmp 0x18006ab07
mov eax, dword [rbx + 0x20]
mov dword [rcx], eax
mov rcx, rbx
call fcn.180073a24
mov rdi, rax
mov eax, dword [rdi + 4]
mov dword [rsp + 0x58], eax
mov rcx, rdi
sub rcx, qword [r14 + 0x4dd0]
movabs rax, 0x3759f22983759f23
imul rcx
mov rsi, rdx
sar rsi, 7
mov rcx, rsi
shr rcx, 0x3f
add rsi, rcx
mov qword [rsp + 0x38], rsi
mov ebx, dword [r14 + 0x4db0]
inc ebx
mov dword [r14 + 0x4db0], ebx
cmp ebx, dword [r14 + 0x4db8]
jle 0x18006ac85
xor edx, edx
lea r8d, [rdx + 0x78]
lea rcx, [rbp - 0x60]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp - 0x5c], 0xbf800000
mov ecx, dword [r14 + 0x4dbc]
cmp ebx, ecx
jle 0x18006abec
test ecx, ecx
je 0x18006ab88
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18006ab8d
mov eax, 8
mov esi, ebx
cmp eax, ebx
cmovg esi, eax
cmp esi, ecx
jle 0x18006abe7
movsxd rax, esi
imul rcx, rax, 0x78
call fcn.18002509c
mov r12, rax
mov rdx, qword [r14 + 0x4dc0]
test rdx, rdx
je 0x18006abd2
movsxd rcx, dword [r14 + 0x4db8]
imul r8, rcx, 0x78
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r14 + 0x4dc0]
call fcn.1800250e4
mov qword [r14 + 0x4dc0], r12
mov dword [r14 + 0x4dbc], esi
mov r12, qword [rbp + 0x110]
mov rsi, qword [rsp + 0x38]
movsxd rax, dword [r14 + 0x4db8]
cmp ebx, eax
jle 0x18006ac65
movsxd rdx, ebx
cmp rax, rdx
jge 0x18006ac65
imul rcx, rax, 0x78
sub rdx, rax
movups xmm1, xmmword [rbp]
movups xmm2, xmmword [rbp - 0x10]
movups xmm3, xmmword [rbp - 0x20]
movups xmm4, xmmword [rbp - 0x30]
movups xmm5, xmmword [rbp - 0x40]
movups xmm6, xmmword [rbp - 0x50]
movups xmm7, xmmword [rbp - 0x60]
mov r9d, 1
mov rax, qword [r14 + 0x4dc0]
movups xmmword [rcx + rax], xmm7
movups xmmword [rcx + rax + 0x10], xmm6
movups xmmword [rcx + rax + 0x20], xmm5
movups xmmword [rcx + rax + 0x30], xmm4
movups xmmword [rcx + rax + 0x40], xmm3
movups xmmword [rcx + rax + 0x50], xmm2
movups xmmword [rcx + rax + 0x60], xmm1
movsd xmm0, qword [rbp + 0x10]
movsd qword [rcx + rax + 0x70], xmm0
lea rcx, [rcx + 0x78]
sub rdx, r9
jne 0x18006ac28
mov dword [r14 + 0x4db8], ebx
lea rcx, [rbp - 0x48]
call fcn.180063624
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x18006ac85
call fcn.1800250e4
nop
movsxd rax, dword [r14 + 0x4db0]
imul rcx, rax, 0x78
mov rdx, qword [r14 + 0x4dc0]
add rdx, 0xffffffffffffff88
add rdx, rcx
mov qword [rsp + 0x48], rdx
mov qword [rdi + 0x10], rdx
mov dword [rdx], esi
mov rax, qword [rdi + 0x10]
add rax, 0x18
mov qword [rdi + 0x1a0], rax
xor r9d, r9d
mov dword [rax], r9d
lea r10d, [r9 + 1]
mov dword [rax + 4], r10d
mov edx, 0xe000
test edx, r15d
sete al
mov byte [rdi + 0x242], al
lea eax, [r9 + 0x40]
mov r11d, 0x1000000
test edx, r15d
jne 0x18006acfe
test r11d, r15d
jne 0x18006acf6
test byte [r13 + 0x14], al
mov eax, 0x8000
je 0x18006acfb
mov eax, 0x2000
or r15d, eax
mov eax, r15d
and eax, edx
mov ecx, r15d
bts ecx, 0x12
cmp eax, 0x4000
cmovne ecx, r15d
mov edx, ecx
bts edx, 9
test r10b, cl
cmove edx, ecx
mov ecx, edx
and ecx, 0xfffcffff
test edx, 0x3000000
cmove ecx, edx
mov edx, ecx
btr edx, 0xb
bt ecx, 0xc
cmovae edx, ecx
mov r8d, edx
or r8d, 0x10
test dl, 0xf
cmovne r8d, edx
mov rax, qword [r13 + 0x378]
mov r15d, r8d
or r15d, 0x10
test dword [rax + 0x14], 0x100
cmove r15d, r8d
mov eax, dword [rdi + 0x68]
mov dword [rsp + 0x54], eax
cmp eax, dword [r14 + 0x3f60]
je 0x18006ad79
mov esi, r9d
jmp 0x18006ad80
movsx esi, word [rdi + 0x78]
add esi, r10d
mov r8d, dword [rsp + 0x50]
mov dword [rdi], r8d
mov dword [rdi + 4], r15d
mov eax, dword [r14 + 0x3f60]
mov dword [rdi + 0x68], eax
mov qword [rdi + 0x188], r13
mov qword [rdi + 0x180], r13
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x6c], eax
mov byte [rdi + 0x236], r9b
movss xmm6, dword [rbp + 0x118]
movss dword [rdi + 0xcc], xmm6
movsd xmm0, qword [r12]
mov r12, qword [rsp + 0x48]
movsd qword [r12 + 0xc], xmm0
mov word [rdi + 0x78], si
test esi, esi
jle 0x18006af33
mov ebx, dword [rdi + 0x1c0]
cmp ebx, esi
jge 0x18006aebd
mov dword [rsp + 0x78], r9d
and dword [rbp - 0x7c], r9d
and dword [rbp - 0x80], r9d
and dword [rsp + 0x7c], r9d
or dword [rbp - 0x74], 0xffffffff
or dword [rbp - 0x78], 0xffffffff
mov ecx, dword [rdi + 0x1c4]
cmp ebx, ecx
jne 0x18006ae90
inc ebx
test ecx, ecx
je 0x18006ae23
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18006ae28
mov eax, 8
cmp eax, ebx
cmovg ebx, eax
cmp ebx, ecx
jle 0x18006ae90
movsxd rax, ebx
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.18002509c
mov r12, rax
mov rdx, qword [rdi + 0x1c8]
test rdx, rdx
je 0x18006ae73
movsxd rcx, dword [rdi + 0x1c0]
lea r8, [rcx + rcx*2]
shl r8, 3
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x1c8]
call fcn.1800250e4
mov qword [rdi + 0x1c8], r12
mov dword [rdi + 0x1c4], ebx
mov r12, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x50]
mov r10d, 1
movsxd rax, dword [rdi + 0x1c0]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x1c8]
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rax + rcx*8], xmm0
movsd xmm1, qword [rbp - 0x78]
movsd qword [rax + rcx*8 + 0x10], xmm1
add dword [rdi + 0x1c0], r10d
mov dword [rbp - 0x68], esi
lea rcx, [0x18001c258]
call fcn.18002d5f8
mov ebx, eax
not ebx
lea rdx, [rbp - 0x68]
mov r11d, 4
mov r8d, r11d
xor r9d, r9d
lea r10d, [r11 - 3]
movzx ecx, bl
movzx eax, byte [rdx]
xor rcx, rax
lea rax, [0x180004db0]
shr ebx, 8
xor ebx, dword [rax + rcx*4]
add rdx, r10
sub r8, r10
jne 0x18006aee4
not ebx
mov r8, qword [0x18009efb8]
cmp dword [r8 + 0x4050], ebx
jne 0x18006af2b
movsxd r8, esi
mov edx, r11d
mov ecx, ebx
call fcn.18003d0e0
mov r8, qword [0x18009efb8]
xor r9d, r9d
mov r11d, 0x1000000
jmp 0x18006af3d
mov ebx, r8d
mov r8, qword [0x18009efb8]
movsx eax, word [rdi + 0x78]
test eax, eax
jne 0x18006af4e
lea rax, [rdi + 0x1a8]
jmp 0x18006af62
dec eax
movsxd rcx, eax
lea rdx, [rcx + rcx*2]
mov rax, qword [rdi + 0x1c8]
lea rax, [rax + rdx*8]
mov dword [rax], ebx
movss xmm7, dword [0x18001de28]
cmp dword [rsp + 0x5c], r9d
je 0x18006b0ef
movaps xmm1, xmm7
movaps xmm0, xmm7
mov eax, r15d
mov ecx, 0x3000000
and eax, ecx
cmp eax, r11d
jne 0x18006af94
movss xmm0, dword [0x18001dbd0]
test r11d, r15d
je 0x18006afa9
comiss xmm6, xmm13
jbe 0x18006afa9
movaps xmm1, xmm6
ucomiss xmm6, xmm7
jp 0x18006afb0
jne 0x18006afb0
ucomiss xmm0, xmm7
jp 0x18006afbb
je 0x18006aff6
ucomiss xmm0, xmm7
jp 0x18006afbb
jne 0x18006afbb
movaps xmm0, xmm13
ucomiss xmm1, xmm7
jp 0x18006afc6
jne 0x18006afc6
movaps xmm1, xmm13
or dword [r8 + 0x49b8], 4
cvttss2si eax, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0x49e0], xmm1
movss dword [r8 + 0x49e4], xmm0
test dword [rsp + 0x58], ecx
jne 0x18006b00d
bts dword [r8 + 0x49b8], 7
and qword [r8 + 0x49e8], 0
subss xmm9, xmm11
movss dword [rsp + 0x48], xmm9
subss xmm8, xmm12
movss dword [rsp + 0x4c], xmm8
mov eax, r15d
shr eax, 0xd
and eax, 0x800
mov dword [rsp + 0x20], eax
xor r9d, r9d
lea r8, [rsp + 0x48]
mov edx, ebx
mov rcx, qword [rsp + 0x70]
call fcn.180027bfc
mov rax, qword [r14 + 0x4008]
mov qword [rdi + 0x188], rax
movups xmm0, xmmword [rax + 0x218]
movdqu xmmword [rdi + 0x110], xmm0
movss xmm2, dword [rax + 0x20]
movss xmm3, dword [rax + 0x24]
movaps xmm1, xmm2
addss xmm1, dword [rax + 0x28]
movaps xmm0, xmm3
addss xmm0, dword [rax + 0x2c]
movss dword [rdi + 0xf0], xmm2
movss dword [rdi + 0xf4], xmm3
movss dword [rdi + 0xf8], xmm1
movss dword [rdi + 0xfc], xmm0
movups xmm0, xmmword [rax + 0x1f8]
movdqu xmmword [rdi + 0x100], xmm0
xor ecx, ecx
cmp byte [rax + 0xbb], cl
je 0x18006b0c4
cmp byte [rsp + 0x30], cl
je 0x18006b0c4
mov byte [rax + 0xbb], cl
test esi, esi
jne 0x18006b0da
mov al, byte [rdi + 0x245]
mov byte [rdi + 0x246], al
mov byte [rdi + 0x245], cl
mov rax, qword [rdi + 0x188]
mov cl, byte [rax + 0xb5]
or byte [rdi + 0x245], cl
jmp 0x18006b10c
movups xmm0, xmmword [rsp + 0x60]
movdqu xmmword [rdi + 0x100], xmm0
movdqu xmmword [rdi + 0xf0], xmm0
movdqu xmmword [rdi + 0x110], xmm0
mov ecx, dword [rsp + 0x50]
call fcn.18002d598
xor r11d, r11d
test esi, esi
jle 0x18006b126
mov ecx, ebx
call fcn.18002d598
xor r11d, r11d
mov rsi, qword [rdi + 0x188]
mov qword [rsp + 0x70], rsi
mov eax, dword [rsi + 0x144]
mov dword [rdi + 0xb4], eax
lea r10, [rsi + 0x238]
movups xmm0, xmmword [r10]
movdqu xmmword [rdi + 0x160], xmm0
mov al, byte [rsi + 0xbb]
mov byte [rdi + 0x248], al
movups xmm0, xmmword [rsi + 0x218]
movdqu xmmword [r12 + 0x30], xmm0
movups xmm1, xmmword [rsi + 0x228]
movdqu xmmword [r12 + 0x40], xmm1
movss xmm0, dword [r13 + 0x148]
movss dword [r12 + 0x68], xmm0
movsd xmm0, qword [rsi + 0x130]
movsd qword [r12 + 0x50], xmm0
movsd xmm0, qword [rsi + 0x128]
movsd qword [r12 + 0x58], xmm0
movsd xmm1, qword [rsi + 0x118]
movsd qword [r12 + 0x60], xmm1
mov eax, dword [r13 + 0x1bc]
mov dword [r12 + 0x6c], eax
mov eax, dword [r13 + 0x1c8]
mov dword [r12 + 0x70], eax
and qword [rsi + 0x128], 0
and qword [rsi + 0x130], 0
cmp rsi, r13
je 0x18006b22b
bt r15d, 0xa
jae 0x18006b207
movss xmm0, dword [rdi + 0x160]
addss xmm0, xmm10
minss xmm0, dword [rdi + 0x168]
movss dword [rdi + 0x160], xmm0
bt r15d, 8
jae 0x18006b22b
movss xmm0, dword [rdi + 0x164]
addss xmm0, xmm10
minss xmm0, dword [rdi + 0x16c]
movss dword [rdi + 0x164], xmm0
mov eax, r15d
shr eax, 0xa
mov ebx, 1
and al, bl
movzx ecx, al
bt r15d, 0x15
cmovb ecx, ebx
movzx r9d, cl
bt r15d, 0x16
cmovb r9d, r11d
mov ecx, r15d
shr ecx, 0x17
not cl
and cl, bl
mov edx, r15d
and edx, 0x200
je 0x18006b26b
movaps xmm3, xmm10
jmp 0x18006b26f
movaps xmm3, xmm13
test cl, cl
je 0x18006b2bb
test edx, edx
jne 0x18006b2bb
lea rax, [r14 + 0x394c]
movss xmm1, dword [rax]
movaps xmm2, xmm13
movaps xmm0, xmm1
addss xmm0, xmm3
movss dword [rdi + 0xc4], xmm0
movss dword [rdi + 0xc8], xmm1
movss dword [rdi + 0xc0], xmm2
bt r15d, 0xa
jb 0x18006b2b0
movaps xmm10, xmm13
test r9b, r9b
je 0x18006b2d4
movss xmm0, dword [rax]
jmp 0x18006b2d8
movaps xmm1, xmm13
lea rax, [r14 + 0x394c]
test cl, cl
je 0x18006b282
test edx, edx
je 0x18006b282
movss xmm2, dword [rax]
jmp 0x18006b286
movaps xmm0, xmm13
addss xmm0, xmm10
subss xmm0, xmm2
movss dword [rdi + 0xbc], xmm0
or dword [rdi + 0x74], 0xffffffff
or dword [rdi + 0x70], 0xffffffff
mov dword [rdi + 0x98], r11d
mov word [rdi + 0x96], r11w
lea rax, [rdi + 0x110]
cmp rsi, r13
cmove r10, rax
movups xmm0, xmmword [r10]
movdqu xmmword [rdi + 0x120], xmm0
movss xmm3, dword [rdi + 0x120]
maxss xmm3, dword [rax]
movss xmm4, dword [rdi + 0x124]
maxss xmm4, dword [rax + 4]
movss dword [rdi + 0x120], xmm3
movss dword [rdi + 0x124], xmm4
movss xmm1, dword [rdi + 0x128]
minss xmm1, dword [rax + 8]
movss xmm0, dword [rdi + 0x12c]
minss xmm0, dword [rax + 0xc]
movss dword [rdi + 0x128], xmm1
movss dword [rdi + 0x12c], xmm0
movss xmm2, dword [rdi + 0x168]
movss xmm1, dword [rdi + 0x164]
comiss xmm1, xmm4
ja 0x18006b38e
movss xmm1, dword [rdi + 0x16c]
minss xmm1, xmm4
movss xmm0, dword [rdi + 0x160]
comiss xmm0, xmm3
jbe 0x18006b3a0
movaps xmm2, xmm0
jmp 0x18006b3a4
minss xmm2, xmm3
movss dword [rdi + 0x120], xmm2
movss dword [rdi + 0x124], xmm1
movss xmm2, dword [rdi + 0x12c]
movss xmm1, dword [rdi + 0x164]
comiss xmm1, xmm2
ja 0x18006b3d5
movss xmm1, dword [rdi + 0x16c]
minss xmm1, xmm2
movss xmm2, dword [rdi + 0x128]
comiss xmm0, xmm2
ja 0x18006b3ee
movss xmm0, dword [rdi + 0x168]
minss xmm0, xmm2
movss dword [rdi + 0x128], xmm0
movss dword [rdi + 0x12c], xmm1
bt r15d, 0x11
jae 0x18006b412
movaps xmm0, xmm1
minss xmm0, dword [rsi + 0x224]
jmp 0x18006b41a
movss xmm0, dword [rsi + 0x244]
movss dword [rdi + 0x12c], xmm0
movss xmm0, dword [rdi + 0x114]
movss dword [rdi + 0x80], xmm0
movss dword [rdi + 0x7c], xmm0
and qword [rdi + 0x88], 0
and qword [rdi + 0x226], 0
mov r9, rbx
mov byte [rdi + 0x241], r9b
and dword [rdi + 0x206], 0
mov eax, dword [rsp + 0x54]
inc eax
cmp eax, dword [r14 + 0x3f60]
jge 0x18006b46e
mov byte [rdi + 0x244], r11b
mov dword [r12 + 8], r11d
mov r8, qword [0x18009efb8]
movdqu xmm0, xmmword [r8 + 0x3c84]
movups xmmword [rsp + 0x60], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r8 + 0x38f0]
movss dword [rsp + 0x6c], xmm0
lea rcx, [rsp + 0x60]
call fcn.180020d08
mov dword [rdi + 0xa4], eax
movdqu xmm0, xmmword [r8 + 0x3c94]
movups xmmword [rsp + 0x60], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r8 + 0x38f0]
movss dword [rsp + 0x6c], xmm0
lea rcx, [rsp + 0x60]
call fcn.180020d08
mov dword [rdi + 0xa8], eax
mov qword [r14 + 0x4da8], rdi
mov byte [r13 + 0x160], r11b
mov rbx, qword [rsp + 0x38]
mov dword [r13 + 0x1b0], ebx
cmp rsi, r13
je 0x18006b501
mov dword [rsi + 0x1b0], ebx
test byte [rsp + 0x58], 2
je 0x18006b515
test r15b, 2
jne 0x18006b515
mov byte [rdi + 0x240], r9b
lea rcx, [r14 + 0x4df0]
cmp ebx, dword [rcx]
jl 0x18006b53c
mov dword [rsp + 0x54], 0xbf800000
lea edx, [rbx + 1]
lea r8, [rsp + 0x54]
call fcn.18006823c
xor r11d, r11d
lea r9d, [r11 + 1]
movsd xmm0, qword [r14 + 0x3f58]
cvtpd2ps xmm0, xmm0
movsxd rcx, ebx
mov rax, qword [r14 + 0x4df8]
movss dword [rax + rcx*4], xmm0
movsd xmm0, qword [r14 + 0x3f58]
cvtpd2ps xmm0, xmm0
movss dword [r12 + 4], xmm0
mov byte [rdi + 0x247], r11b
mov r15, r11
mov qword [rsp + 0x38], r11
mov rcx, qword [rdi + 0x20]
sub rcx, qword [rdi + 0x18]
movabs rax, 0x4924924924924925
imul rcx
mov r13, rdx
sar r13, 5
mov rax, r13
shr rax, 0x3f
add r13, rax
mov r12d, dword [rsp + 0x40]
test r13d, r13d
je 0x18006b5c1
cmp r13d, r12d
je 0x18006b5c1
mov r15, qword [rdi + 0x18]
mov rax, qword [rdi + 8]
mov qword [rsp + 0x38], rax
mov qword [rdi + 8], r11
cmp qword [rdi + 8], r11
jne 0x18006b6ec
lea ebx, [r12 + 0x1f]
sar ebx, 3
and ebx, 0xfffffffc
xor edx, edx
lea r8d, [rdx + 0x40]
lea rcx, [rbp - 0x60]
call sub.VCRUNTIME140.dll_memset
imul eax, r12d, 0x70
mov dword [rbp - 0x38], eax
lea ecx, [rax + 3]
and ecx, 0xfffffffc
mov dword [rbp - 0x4c], ecx
lea eax, [r12 + r12]
mov dword [rbp - 0x34], eax
lea edx, [rcx + 3]
add edx, eax
and edx, 0xfffffffc
mov dword [rbp - 0x48], edx
lea eax, [r12*8]
mov dword [rbp - 0x30], eax
lea r8d, [rax + rdx]
mov ecx, 3
lea r9d, [rcx - 2]
lea eax, [r8 + 3]
and eax, 0xfffffffc
mov dword [rbp - 0x58], eax
mov dword [rbp + rcx*4 - 0x50], eax
mov dword [rbp + rcx*4 - 0x38], ebx
mov r8d, dword [rbp - 0x58]
add r8d, ebx
add rcx, r9
cmp rcx, 6
jl 0x18006b61f
movsxd rbx, r8d
mov rcx, rbx
call fcn.18002509c
mov qword [rdi + 8], rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rdi + 8]
movsxd rcx, dword [rbp - 0x50]
lea rax, [rcx + rdx]
mov qword [rdi + 0x18], rax
movsxd rax, dword [rbp - 0x38]
add rax, rcx
add rax, rdx
mov qword [rdi + 0x20], rax
movsxd rcx, dword [rbp - 0x4c]
lea rax, [rcx + rdx]
mov qword [rdi + 0x28], rax
movsxd rax, dword [rbp - 0x34]
add rax, rcx
add rax, rdx
mov qword [rdi + 0x30], rax
movsxd rcx, dword [rbp - 0x48]
lea rax, [rcx + rdx]
mov qword [rdi + 0x38], rax
movsxd rax, dword [rbp - 0x30]
add rax, rcx
add rax, rdx
mov qword [rdi + 0x40], rax
movsxd rax, dword [rbp - 0x44]
add rax, rdx
mov qword [rdi + 0x48], rax
movsxd rax, dword [rbp - 0x40]
add rax, rdx
mov qword [rdi + 0x50], rax
movsxd rax, dword [rbp - 0x3c]
add rax, rdx
mov qword [rdi + 0x58], rax
mov r9d, 1
mov byte [rdi + 0x23c], r9b
mov byte [rdi + 0x238], r9b
mov al, r9b
xor r11d, r11d
jmp 0x18006b6f2
mov al, byte [rdi + 0x238]
cmp byte [rdi + 0x23f], r11b
je 0x18006b718
mov word [rdi + 0x23c], 0x100
mov byte [rdi + 0x238], r9b
mov byte [rdi + 0x23f], r11b
mov dword [rdi + 0x60], r11d
jmp 0x18006b720
test al, al
je 0x18006b8c8
or rdx, 0xffffffffffffffff
mov dword [rdi + 0x64], edx
mov byte [rdi + 0x239], r9b
mov word [rdi + 0x7a], dx
mov word [rdi + 0x224], dx
mov word [rdi + 0x214], dx
mov word [rdi + 0x212], dx
mov word [rdi + 0x218], dx
mov word [rdi + 0x210], dx
mov word [rdi + 0x20c], dx
mov word [rdi + 0x20a], dx
mov r12d, r11d
cmp dword [rsp + 0x40], r11d
jle 0x18006b8c8
mov rcx, r11
mov qword [rsp + 0x48], rcx
mov rbx, r11
or r14, rdx
mov rsi, qword [rdi + 0x18]
test r15, r15
je 0x18006b7dd
cmp r12d, r13d
jge 0x18006b7dd
movups xmm0, xmmword [rbx + r15]
movups xmmword [rbx + rsi], xmm0
movups xmm1, xmmword [rbx + r15 + 0x10]
movups xmmword [rbx + rsi + 0x10], xmm1
movups xmm0, xmmword [rbx + r15 + 0x20]
movups xmmword [rbx + rsi + 0x20], xmm0
movups xmm1, xmmword [rbx + r15 + 0x30]
movups xmmword [rbx + rsi + 0x30], xmm1
movups xmm0, xmmword [rbx + r15 + 0x40]
movups xmmword [rbx + rsi + 0x40], xmm0
movups xmm1, xmmword [rbx + r15 + 0x50]
movups xmmword [rbx + rsi + 0x50], xmm1
movups xmm0, xmmword [rbx + r15 + 0x60]
movups xmmword [rbx + rsi + 0x60], xmm0
jmp 0x18006b895
movss xmm6, dword [rbx + rsi + 0x14]
xor edx, edx
lea r8d, [rdx + 0x70]
lea rcx, [rbp - 0x60]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp - 0x50], 0xbf800000
mov dword [rbp - 0x48], 0xbf800000
mov word [rbp - 0x10], r14w
mov word [rbp - 0xc], r14w
mov word [rbp - 0xe], r14w
mov word [rbp - 8], r14w
mov word [rbp - 0xa], r14w
mov word [rbp - 6], r14w
and byte [rbp + 0xd], 0xfc
mov edx, 0xff
mov dword [rbp - 2], 0xff00ff
mov word [rbp - 4], dx
movups xmm0, xmmword [rbp - 0x60]
movups xmmword [rbx + rsi], xmm0
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rbx + rsi + 0x10], xmm1
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rbx + rsi + 0x20], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rbx + rsi + 0x30], xmm1
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rbx + rsi + 0x40], xmm0
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rbx + rsi + 0x50], xmm1
movups xmm0, xmmword [rbp]
movups xmmword [rbx + rsi + 0x60], xmm0
movss dword [rbx + rsi + 0x14], xmm6
mov r9d, 1
mov byte [rbx + rsi + 0x69], r9b
mov word [rbx + rsi + 0x63], 0x101
mov byte [rbx + rsi + 0x62], r9b
mov rcx, qword [rsp + 0x48]
xor r11d, r11d
mov rax, qword [rdi + 0x28]
mov word [rcx + rax], r12w
mov word [rbx + rsi + 0x52], r12w
add r12d, r9d
add rbx, 0x70
add rcx, 2
mov qword [rsp + 0x48], rcx
cmp r12d, dword [rsp + 0x40]
jl 0x18006b77f
mov r14, qword [rbp - 0x70]
mov rsi, qword [rsp + 0x70]
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x18006b8dd
mov rcx, rax
call fcn.1800250e4
xor r11d, r11d
or r12, 0xffffffffffffffff
cmp byte [rdi + 0x23c], r11b
je 0x18006ba7b
mov rbx, qword [0x18009efb8]
mov byte [rdi + 0x23c], r11b
test byte [rdi + 4], 0x10
jne 0x18006ba7b
cmp dword [rdi + 0x64], r12d
jne 0x18006b93f
mov ecx, dword [rdi]
call fcn.180071548
mov rdx, rax
xor r11d, r11d
test rax, rax
je 0x18006ba7b
movsx ecx, word [rax + 0xc]
cmp ecx, dword [rdi + 0x6c]
je 0x18006b932
mov byte [rdi + 0x23d], 1
mov ecx, eax
sub ecx, dword [rbx + 0x5f10]
mov dword [rdi + 0x64], ecx
jmp 0x18006b959
movsxd rdx, dword [rdi + 0x64]
add rdx, qword [rbx + 0x5f10]
movsx eax, word [rdx + 0xe]
cmp eax, dword [rdi + 0x6c]
jge 0x18006b959
mov dword [rdx], r11d
mov rdx, r11
mov eax, dword [rdx + 4]
mov dword [rdi + 0x60], eax
mov eax, dword [rdx + 8]
mov dword [rdi + 0xe4], eax
lea r8, [rdx + 0x14]
mov r9, r11
movzx ecx, word [rdx + 0xc]
xor ebx, ebx
lea r15d, [rbx + 1]
cmp bx, cx
jge 0x18006ba0e
movsx r10, word [r8 + 8]
mov rax, r10
test r10d, r10d
js 0x18006b9fa
cmp eax, dword [rdi + 0x6c]
jge 0x18006b9fa
imul rcx, rax, 0x70
add rcx, qword [rdi + 0x18]
test byte [rdx + 4], r15b
je 0x18006b9bd
movss xmm0, dword [r8]
test byte [r8 + 0xe], 8
je 0x18006b9b5
movss dword [rcx + 0x18], xmm0
jmp 0x18006b9ba
movss dword [rcx + 0x10], xmm0
mov byte [rcx + 0x6b], bl
test byte [rdx + 4], 2
je 0x18006b9c8
movzx r10d, word [r8 + 0xa]
mov word [rcx + 0x52], r10w
movsx rax, r10w
bts r9, rax
mov al, byte [r8 + 0xe]
shr al, 2
and al, r15b
mov byte [rcx + 0x64], al
mov byte [rcx + 0x63], al
movzx eax, word [r8 + 0xc]
mov word [rcx + 0x5a], ax
mov al, byte [rcx + 0x6d]
xor al, byte [r8 + 0xe]
and al, 3
xor byte [rcx + 0x6d], al
add r11d, r15d
add r8, 0x10
movsx ecx, word [rdx + 0xc]
cmp r11d, ecx
jl 0x18006b982
mov eax, 0x40
cmp cx, ax
jne 0x18006ba1d
mov rax, r12
jmp 0x18006ba26
mov rax, r15
shl rax, cl
sub rax, r15
xor r11d, r11d
cmp r9, rax
je 0x18006ba4f
mov edx, r11d
cmp dword [rdi + 0x6c], r11d
jle 0x18006ba4f
movsxd rax, edx
imul rcx, rax, 0x70
mov rax, qword [rdi + 0x18]
mov word [rcx + rax + 0x52], dx
add edx, r15d
cmp edx, dword [rdi + 0x6c]
jl 0x18006ba37
mov r8d, r11d
cmp dword [rdi + 0x6c], r11d
jle 0x18006ba7b
movsxd rax, r8d
imul rcx, rax, 0x70
mov rax, qword [rdi + 0x18]
movsx rdx, word [rcx + rax + 0x52]
mov rax, qword [rdi + 0x28]
mov word [rax + rdx*2], r8w
add r8d, r15d
cmp r8d, dword [rdi + 0x6c]
jl 0x18006ba58
movss xmm1, dword [r14 + 0x3d40]
movss xmm0, dword [rdi + 0xe4]
ucomiss xmm0, xmm13
jp 0x18006ba94
je 0x18006bad3
ucomiss xmm0, xmm1
jp 0x18006ba9b
je 0x18006bad3
movaps xmm2, xmm1
divss xmm2, xmm0
movsxd rdx, dword [rsp + 0x40]
mov r9d, 1
test rdx, rdx
jle 0x18006bad9
mov rcx, r11
mov rax, qword [rdi + 0x18]
movaps xmm0, xmm2
mulss xmm0, dword [rcx + rax + 0x10]
movss dword [rcx + rax + 0x10], xmm0
lea rcx, [rcx + 0x70]
sub rdx, r9
jne 0x18006bab5
jmp 0x18006bad9
mov r9d, 1
movss dword [rdi + 0xe4], xmm1
mov byte [rsi + 0xbb], r9b
lea rcx, [rdi + 0x190]
cmp dword [rcx], r11d
jle 0x18006bafe
xor edx, edx
call fcn.18003e300
xor r11d, r11d
cmp word [rdi + 0x78], r11w
jne 0x18006bb71
movsx eax, word [rdi + 0x212]
cmp ax, r12w
je 0x18006bb28
movss xmm1, dword [rdi + 0xdc]
ucomiss xmm1, xmm7
jp 0x18006bb21
je 0x18006bb28
mov ecx, eax
call fcn.18006ec7c
movzx eax, word [rdi + 0x212]
mov word [rdi + 0x214], ax
mov dword [rdi + 0xdc], 0x7f7fffff
mov word [rdi + 0x212], r12w
movsx rcx, word [rdi + 0x210]
cmp cx, r12w
je 0x18006bb71
imul rdx, rcx, 0x70
mov rax, qword [rdi + 0x18]
movss xmm1, dword [rdx + rax + 0x14]
call fcn.18006ec7c
mov word [rdi + 0x210], r12w
xor ebx, ebx
cmp word [rdi + 0x78], bx
jne 0x18006bc6b
cmp word [rdi + 0x216], r12w
jne 0x18006bb99
cmp word [rdi + 0x218], r12w
je 0x18006bb99
mov word [rdi + 0x218], r12w
mov word [rdi + 0x216], r12w
movsx rax, word [rdi + 0x218]
cmp ax, r12w
je 0x18006bc6b
movsx r10d, word [rdi + 0x21a]
test r10w, r10w
je 0x18006bc6b
mov r11, qword [rdi + 0x18]
imul r8, rax, 0x70
add r8, r11
cmp r10d, r12d
jne 0x18006bbdc
movzx eax, word [r8 + 0x56]
jmp 0x18006bbe1
movzx eax, word [r8 + 0x58]
movsx edx, word [r8 + 0x52]
movsx rax, ax
imul rcx, rax, 0x70
movsx eax, word [rcx + r11 + 0x52]
mov word [r8 + 0x52], ax
lea r8d, [rdx + r10]
lea r11d, [r10 + rax]
jmp 0x18006bc20
movsxd rcx, r8d
mov rax, qword [rdi + 0x28]
movsx rcx, word [rax + rcx*2]
imul rdx, rcx, 0x70
mov rax, qword [rdi + 0x18]
sub word [rdx + rax + 0x52], r10w
add r8d, r10d
cmp r8d, r11d
jne 0x18006bc03
mov r8d, ebx
cmp dword [rdi + 0x6c], ebx
jle 0x18006bc57
movsxd rax, r8d
imul rcx, rax, 0x70
mov rax, qword [rdi + 0x18]
movsx rdx, word [rcx + rax + 0x52]
mov rax, qword [rdi + 0x28]
mov word [rax + rdx*2], r8w
mov eax, 1
add r8d, eax
cmp r8d, dword [rdi + 0x6c]
jl 0x18006bc2d
jmp 0x18006bc5c
mov eax, 1
mov word [rdi + 0x21a], bx
mov byte [rdi + 0x23d], al
jmp 0x18006bc70
mov eax, 1
cmp byte [rdi + 0x240], bl
je 0x18006bcaf
mov r9d, ebx
cmp dword [rdi + 0x6c], ebx
jle 0x18006bca3
movsxd r8, r9d
imul rdx, r8, 0x70
mov rcx, qword [rdi + 0x18]
mov word [rdx + rcx + 0x52], r9w
mov rcx, qword [rdi + 0x28]
mov word [rcx + r8*2], r9w
add r9d, eax
cmp r9d, dword [rdi + 0x6c]
jl 0x18006bc80
mov byte [rdi + 0x240], bl
mov byte [rdi + 0x23d], al
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.1800941e0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x50]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret