Function at 0x180054310
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x3f8]
sub rsp, 0x4f8
mov rax, qword [0x18015f040]
xor rax, rsp
mov qword [rbp + 0x340], rax
mov rax, qword gs:[0x58]
mov rbx, r9
mov r10d, dword [0x18015fb14]
mov r13, r8
mov r12d, 4
movabs rsi, 0xdccf003ada4c08e3
mov qword [rbp - 8], rbx
mov qword [rbp - 0x50], rdx
mov rdi, qword [rax + r10*8]
mov qword [rbp - 0x48], rcx
mov eax, dword [rdi + r12]
cmp dword [0x18015fe1c], eax
jle 0x1800543aa
lea rcx, [0x18015fe1c]
call fcn.1800e1570
cmp dword [0x18015fe1c], 0xffffffff
jne 0x1800543aa
mov rcx, rsi
call fcn.180071fb0
lea rcx, [0x18015fe1c]
mov dword [0x18015fe6c], eax
call fcn.1800e1504
mov eax, dword [0x18015fe6c]
mov qword [rsp + 0x548], r14
mov qword [rsp + 0x4f0], r15
cmp byte [rax + rbx], 0
je 0x180055834
mov rcx, qword [0x18015fe80]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x180055834
mov rcx, qword [0x18015fe80]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x180055834
mov eax, dword [rdi + r12]
cmp dword [0x180160038], eax
jle 0x180054442
lea rcx, [0x180160038]
call fcn.1800e1570
cmp dword [0x180160038], 0xffffffff
jne 0x180054442
movabs rcx, 0xd68445ee808de532
call fcn.180071fb0
lea rcx, [0x180160038]
mov dword [0x18015fefc], eax
call fcn.1800e1504
mov eax, dword [0x18015fefc]
mov rbx, qword [rax + r13]
test rbx, rbx
je 0x180055834
mov eax, dword [rdi + r12]
cmp dword [0x18015feec], eax
jle 0x180054497
lea rcx, [0x18015feec]
call fcn.1800e1570
cmp dword [0x18015feec], 0xffffffff
jne 0x180054497
movabs rcx, 0xb61f1dc362857c87
call fcn.180071fb0
lea rcx, [0x18015feec]
mov dword [0x18015fed4], eax
call fcn.1800e1504
mov edx, dword [0x18015fed4]
mov rax, qword [0x18015fe98]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x180055834
mov rcx, qword [rax + 0x58]
and edx, 0x7fff
call fcn.180052690
mov qword [rsp + 0x70], rax
mov r15, rax
test rax, rax
je 0x180055834
xor esi, esi
lea rdx, [rbp - 0x60]
mov qword [rbp - 0x60], rsi
mov rcx, rax
mov r8, qword [rax]
call qword [r8 + 0x130]
cmp qword [rbp - 0x60], rsi
je 0x180055834
mov rcx, r15
call fcn.1800524b0
test al, al
je 0x180055834
mov eax, dword [rdi + r12]
cmp dword [0x18015fe18], eax
jle 0x180054543
lea rcx, [0x18015fe18]
call fcn.1800e1570
cmp dword [0x18015fe18], 0xffffffff
jne 0x180054543
movabs rcx, 0x60fabb1cd5f10d10
call fcn.180071fb0
lea rcx, [0x18015fe18]
mov dword [0x18015fe58], eax
call fcn.1800e1504
mov eax, dword [rdi + r12]
movabs rbx, 0xe12e67da4804cf5
cmp dword [0x18015fe4c], eax
jle 0x180054588
lea rcx, [0x18015fe4c]
call fcn.1800e1570
cmp dword [0x18015fe4c], 0xffffffff
jne 0x180054588
mov rcx, rbx
call fcn.180071fb0
lea rcx, [0x18015fe4c]
mov dword [0x18015fed0], eax
call fcn.1800e1504
mov ebx, dword [0x18015fed0]
movabs r14, 0xb48954c107f97a20
mov eax, dword [rdi + r12]
add rbx, r15
cmp dword [0x18015fec4], eax
jle 0x1800545d6
lea rcx, [0x18015fec4]
call fcn.1800e1570
cmp dword [0x18015fec4], 0xffffffff
jne 0x1800545d6
mov rcx, r14
call fcn.180071fb0
lea rcx, [0x18015fec4]
mov dword [0x18015fecc], eax
call fcn.1800e1504
mov r14d, dword [0x18015fecc]
mov eax, dword [rdi + r12]
add r14, rbx
cmp dword [0x18015ff04], eax
movabs rbx, 0xc474270c7cea7824
jle 0x180054625
lea rcx, [0x18015ff04]
call fcn.1800e1570
cmp dword [0x18015ff04], 0xffffffff
jne 0x180054625
mov rcx, rbx
call fcn.180071fb0
lea rcx, [0x18015ff04]
mov dword [0x18015fe44], eax
call fcn.1800e1504
mov eax, dword [0x18015fe44]
movzx eax, word [rax + r14]
mov r14d, 4
mov word [rsp + 0x48], ax
mov eax, dword [rdi + r14]
cmp dword [0x18015fef4], eax
jle 0x180054680
lea rcx, [0x18015fef4]
call fcn.1800e1570
cmp dword [0x18015fef4], 0xffffffff
jne 0x180054680
movabs rcx, 0x79737564f6f2d233
call fcn.180071fb0
add eax, 8
lea rcx, [0x18015fef4]
mov dword [0x18015feb0], eax
call fcn.1800e1504
mov eax, dword [0x18015feb0]
mov rbx, qword [rax + r15]
mov qword [rbp], rbx
test rbx, rbx
je 0x180055834
mov eax, dword [rdi + r14]
cmp dword [0x18015fe54], eax
jle 0x1800546d9
lea rcx, [0x18015fe54]
call fcn.1800e1570
cmp dword [0x18015fe54], 0xffffffff
jne 0x1800546d9
movabs rcx, 0xc11b1abece31bb76
call fcn.180071fb0
lea rcx, [0x18015fe54]
mov dword [0x18015fec0], eax
call fcn.1800e1504
mov eax, dword [0x18015fec0]
mov ebx, dword [rax + rbx]
mov ecx, ebx
sub ecx, 1
je 0x180054701
sub ecx, 2
je 0x180054701
sub ecx, 1
je 0x180054701
sub ecx, 1
je 0x180054701
cmp ecx, 1
jne 0x180055805
mov eax, dword [rdi + r14]
movabs r12, 0x4107570682c8e170
cmp dword [0x18015fe74], eax
jle 0x180054746
lea rcx, [0x18015fe74]
call fcn.1800e1570
cmp dword [0x18015fe74], 0xffffffff
jne 0x180054746
mov rcx, r12
call fcn.180071fb0
lea rcx, [0x18015fe74]
mov dword [0x180160034], eax
call fcn.1800e1504
mov eax, dword [0x180160034]
cmp dword [rax + r15], esi
je 0x180055834
cmp ebx, 5
jne 0x1800547ad
mov eax, dword [rdi + r14]
cmp dword [0x18015fed8], eax
jle 0x18005479d
lea rcx, [0x18015fed8]
call fcn.1800e1570
cmp dword [0x18015fed8], 0xffffffff
jne 0x18005479d
movabs rcx, 0x6150d75eb29bdcdd
call fcn.180071fb0
lea rcx, [0x18015fed8]
mov dword [0x18015fe30], eax
call fcn.1800e1504
mov eax, dword [0x18015fe30]
cmp byte [rax + r13], sil
je 0x180055834
mov rax, qword [0x18015fe98]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x490], xmm11
xorps xmm1, xmm1
movaps xmmword [rsp + 0x480], xmm12
xorps xmm11, xmm11
movaps xmmword [rsp + 0x470], xmm13
xorps xmm12, xmm12
mov rcx, qword [rax + 0x58]
xorps xmm13, xmm13
movaps xmmword [rsp + 0x460], xmm14
xorps xmm14, xmm14
movaps xmmword [rsp + 0x450], xmm15
xorps xmm15, xmm15
mov qword [rsp + 0x38], rsi
mov eax, dword [rcx + 0x1510]
mov ecx, 1
mov dword [rsp + 0x68], eax
mov qword [rbp + 0x278], rsi
movups xmmword [rbp + 0x280], xmm0
movups xmmword [rbp + 0x290], xmm1
mov qword [rbp + 0x2a0], rsi
mov dword [rsp + 0x64], esi
mov dword [rsp + 0x60], ecx
cmp eax, ecx
jl 0x1800557d8
movaps xmmword [rsp + 0x4b0], xmm9
movabs r15, 0xc106a596b87eca81
movss xmm9, dword [0x18014d534]
movaps xmmword [rsp + 0x4e0], xmm6
movaps xmmword [rsp + 0x4d0], xmm7
movaps xmmword [rsp + 0x4c0], xmm8
mov rax, qword [0x18015fe98]
mov edx, ecx
movabs rbx, 0x100000001b3
mov rcx, qword [rax + 0x58]
call fcn.180052690
mov r12, rax
test rax, rax
je 0x180054b05
mov qword [rbp - 0x58], rsi
lea rdx, [rbp - 0x58]
mov rax, qword [rax]
mov rcx, r12
call qword [rax + 0x130]
mov r9, qword [rbp - 0x58]
test r9, r9
je 0x180054b05
mov r9, qword [r9 + 8]
movabs r8, 0xcbf29ce484222325
mov rcx, r9
cmp byte [r9], sil
je 0x1800548db
inc rcx
cmp byte [rcx], sil
jne 0x1800548d3
mov rdx, rsi
sub rcx, r9
je 0x180054b18
nop word [rax + rax]
movsx rax, byte [rdx + r9]
inc rdx
xor r8, rax
imul r8, rbx
cmp rdx, rcx
jb 0x1800548f0
cmp r8, r15
jne 0x180054b18
cmp r12, qword [rbp - 8]
je 0x180054b05
mov rax, qword [0x18015fe98]
mov rbx, qword [rax + 0x58]
mov eax, dword [rdi + r14]
cmp dword [0x18015fe3c], eax
jle 0x180054964
lea rcx, [0x18015fe3c]
call fcn.1800e1570
cmp dword [0x18015fe3c], 0xffffffff
jne 0x180054964
movabs rcx, 0x9241b8778dd136bd
call fcn.180071fb0
lea rcx, [0x18015fe3c]
mov dword [0x180160030], eax
call fcn.1800e1504
mov edx, dword [0x180160030]
mov edx, dword [rdx + r12]
cmp edx, 0xffffffff
je 0x180054b05
and edx, 0x7fff
mov rcx, rbx
call fcn.180052690
mov r15, rax
test rax, rax
je 0x180054b05
mov ecx, dword [rdi + r14]
cmp dword [0x18015fe14], ecx
jle 0x1800549d3
lea rcx, [0x18015fe14]
call fcn.1800e1570
cmp dword [0x18015fe14], 0xffffffff
jne 0x1800549d3
movabs rcx, 0x4ff1a61db0a3a408
call fcn.180071fb0
lea rcx, [0x18015fe14]
mov dword [0x18015fe78], eax
call fcn.1800e1504
mov eax, dword [0x18015fe78]
cmp byte [rax + r15], sil
jne 0x180054b18
mov eax, dword [rdi + r14]
cmp dword [0x18015fe1c], eax
jle 0x180054a25
lea rcx, [0x18015fe1c]
call fcn.1800e1570
cmp dword [0x18015fe1c], 0xffffffff
jne 0x180054a25
movabs rcx, 0xdccf003ada4c08e3
call fcn.180071fb0
lea rcx, [0x18015fe1c]
mov dword [0x18015fe6c], eax
call fcn.1800e1504
mov eax, dword [0x18015fe6c]
cmp byte [rax + r12], sil
je 0x180054b05
mov rdx, r15
mov rcx, r13
call fcn.1800785c0
test al, al
je 0x180054b05
mov eax, dword [rdi + r14]
cmp dword [0x180160028], eax
jle 0x180054a8a
lea rcx, [0x180160028]
call fcn.1800e1570
cmp dword [0x180160028], 0xffffffff
jne 0x180054a8a
movabs rcx, 0x9f4c773fb92eaba8
call fcn.180071fb0
lea rcx, [0x180160028]
mov dword [0x18015fe50], eax
call fcn.1800e1504
mov eax, dword [0x18015fe50]
mov rbx, qword [rax + r15]
test rbx, rbx
je 0x180054b05
mov eax, dword [rdi + r14]
cmp dword [0x18015fe20], eax
jle 0x180054adb
lea rcx, [0x18015fe20]
call fcn.1800e1570
cmp dword [0x18015fe20], 0xffffffff
jne 0x180054adb
movabs rcx, 0xfbb517d29079c514
call fcn.180071fb0
lea rcx, [0x18015fe20]
mov dword [0x18015fedc], eax
call fcn.1800e1504
mov eax, dword [0x18015fedc]
cmp byte [rax + rbx], sil
jne 0x180054b05
mov rax, qword [rbx]
mov rcx, rbx
mov rdx, qword [rax + 0x40]
call rdx
mov r14, rax
test rax, rax
jne 0x180054ff9
mov r14d, 4
mov qword [0x180160010], rsi
mov dword [0x180160018], esi
mov dword [0x18015fe38], esi
mov rbx, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x60]
movabs r15, 0xc106a596b87eca81
inc ecx
mov dword [rsp + 0x60], ecx
cmp ecx, dword [rsp + 0x68]
jle 0x180054874
test rbx, rbx
je 0x1800557b6
mov rax, qword [0x1801600b8]
mov r15, qword [rbp - 0x50]
movss xmm1, dword [0x18014d4d8]
movaps xmmword [rsp + 0x4a0], xmm10
movss xmm6, dword [rax + 0x40]
mov r14, qword [r15 + 0x40]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_fmodf
movss xmm8, dword [0x18014d640]
subss xmm6, xmm0
movss xmm10, dword [0x18014d4f4]
movaps xmm1, xmm0
mov rax, qword [0x18015fea0]
mulss xmm1, xmm8
mulss xmm6, xmm8
movss xmm0, dword [rax + 0x34]
mulss xmm0, xmm8
addss xmm6, xmm10
addss xmm0, xmm10
cvttss2si ecx, xmm6
cvttss2si ebx, xmm0
movss xmm0, dword [0x18014d538]
sub ebx, ecx
comiss xmm0, xmm1
jbe 0x180054bda
movss xmm0, dword [0x18014d4a4]
comiss xmm0, xmm1
jb 0x180054bda
inc ebx
mov ecx, 4
dec ebx
mov eax, dword [rdi + rcx]
cmp dword [0x1801600c4], eax
jle 0x180054c27
lea rcx, [0x1801600c4]
call fcn.1800e1570
cmp dword [0x1801600c4], 0xffffffff
jne 0x180054c22
movabs rcx, 0x3f30a5a2620fc286
call fcn.180071fb0
lea rcx, [0x1801600c4]
mov dword [0x1801600c0], eax
call fcn.1800e1504
mov ecx, 4
mov eax, dword [0x1801600c0]
movss xmm0, dword [rax + r12]
mulss xmm0, xmm8
addss xmm0, xmm10
cvttss2si eax, xmm0
cmp ebx, eax
jge 0x180054ccc
cmp byte [0x18015fe70], sil
je 0x180054ccc
mov eax, dword [rdi + rcx]
cmp dword [0x180160028], eax
jle 0x180054c93
lea rcx, [0x180160028]
call fcn.1800e1570
cmp dword [0x180160028], 0xffffffff
jne 0x180054c93
movabs rcx, 0x9f4c773fb92eaba8
call fcn.180071fb0
lea rcx, [0x180160028]
mov dword [0x18015fe50], eax
call fcn.1800e1504
mov eax, dword [0x18015fe50]
mov rcx, qword [rax + r12]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x40]
call rdx
mov rcx, qword [rax + 0x1f0]
movsxd rax, dword [0x18015f474]
shl rax, 5
movss xmm13, dword [rax + rcx]
movss xmm14, dword [rax + rcx + 4]
movss xmm15, dword [rax + rcx + 8]
movaps xmm0, xmm13
movss dword [rsp + 0x58], xmm15
unpcklps xmm0, xmm14
lea r8, [rsp + 0x50]
mov r9, r13
movsd qword [rsp + 0x50], xmm0
mov rdx, r15
lea rcx, [rbp - 0x70]
call fcn.180053740
mov r8, r13
lea rcx, [rsp + 0x50]
call fcn.1800532b0
movss xmm0, dword [rbp - 0x70]
subss xmm0, dword [rsp + 0x50]
movss xmm7, dword [rbp - 0x6c]
subss xmm7, dword [rsp + 0x54]
movss xmm6, dword [0x18014d688]
movaps xmm1, xmm6
addss xmm0, dword [r14 + 0x18]
addss xmm7, dword [r14 + 0x1c]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movaps xmm9, xmm0
movaps xmm1, xmm6
movaps xmm0, xmm7
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movaps xmm7, xmm0
movaps xmm1, xmm6
movaps xmm0, xmm11
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
mov r8, qword [0x18015f4b8]
movaps xmm1, xmm0
mov rax, qword [0x180160958]
shl rax, 5
lea rcx, [r8 + 0x18]
add rcx, rax
cmp qword [rax + r8 + 0x10], 8
jbe 0x180054d7c
mov rcx, qword [rcx]
movss xmm0, dword [rcx]
comiss xmm0, xmm8
mov r14, qword [rbp - 0x48]
jb 0x180054de2
mov rdx, qword [r14 + 0x38]
mov eax, esi
mov ecx, dword [rdx]
test ecx, ecx
jle 0x180054de2
mov r8, rsi
cmp eax, ecx
jge 0x180054dcb
cmp eax, dword [r14 + 0x30]
jge 0x180054dcb
mov rcx, qword [r8 + rdx + 8]
test rcx, rcx
je 0x180054dcb
mov rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x180054dcb
movss dword [rdx + 0x18], xmm9
movss dword [rdx + 0x1c], xmm7
movss dword [rdx + 0x20], xmm1
or qword [rcx + 0x10], 1
mov rdx, qword [r14 + 0x38]
inc eax
add r8, 8
mov ecx, dword [rdx]
cmp eax, ecx
jl 0x180054d9d
mov r8, qword [0x18015f4b8]
ucomiss xmm12, xmm11
jp 0x180054dea
je 0x180054e0e
movss dword [0x180160010], xmm13
movss dword [0x180160014], xmm14
movss dword [0x180160018], xmm15
movss dword [0x18015fe38], xmm12
mov rax, qword [0x180160918]
shl rax, 5
lea rcx, [rax + 0x18]
add rcx, r8
cmp qword [rax + r8 + 0x10], 8
jbe 0x180054e2b
mov rcx, qword [rcx]
cmp byte [rcx], sil
je 0x1800557ad
mov rax, qword [0x18015fea0]
movzx r12d, word [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov edx, r12d
mov rcx, rbx
movss xmm2, dword [rax + 0x34]
call fcn.180078a50
mov rax, qword [0x18015fea0]
movss xmm6, dword [rax + 0x34]
mov eax, 4
mov eax, dword [rdi + rax]
cmp dword [0x18016070c], eax
jle 0x180054ea8
lea rcx, [0x18016070c]
call fcn.1800e1570
cmp dword [0x18016070c], 0xffffffff
jne 0x180054ea8
movabs rcx, 0x81a494e58826e7e
call fcn.180071fb0
lea rcx, [0x18016070c]
mov dword [0x180160714], eax
call fcn.1800e1504
mov eax, dword [0x180160714]
mulss xmm6, xmm8
addss xmm6, xmm10
cvttss2si ecx, xmm6
cmp dword [rax + rbx], ecx
jg 0x1800555ce
test r12w, r12w
mov r12d, 4
je 0x1800555d4
mov eax, dword [rdi + r12]
cmp dword [0x18015fe74], eax
jle 0x180054f17
lea rcx, [0x18015fe74]
call fcn.1800e1570
cmp dword [0x18015fe74], 0xffffffff
jne 0x180054f17
movabs rcx, 0x4107570682c8e170
call fcn.180071fb0
lea rcx, [0x18015fe74]
mov dword [0x180160034], eax
call fcn.1800e1504
mov eax, dword [0x180160034]
cmp dword [rax + rbx], esi
jle 0x1800555d4
mov eax, dword [rdi + r12]
cmp dword [0x18015fe4c], eax
jle 0x180054f68
lea rcx, [0x18015fe4c]
call fcn.1800e1570
cmp dword [0x18015fe4c], 0xffffffff
jne 0x180054f68
movabs rcx, 0xe12e67da4804cf5
call fcn.180071fb0
lea rcx, [0x18015fe4c]
mov dword [0x18015fed0], eax
call fcn.1800e1504
mov eax, dword [rdi + r12]
cmp dword [0x18015fec4], eax
jle 0x180054faa
lea rcx, [0x18015fec4]
call fcn.1800e1570
cmp dword [0x18015fec4], 0xffffffff
jne 0x180054faa
movabs rcx, 0xb48954c107f97a20
call fcn.180071fb0
lea rcx, [0x18015fec4]
mov dword [0x18015fecc], eax
call fcn.1800e1504
mov eax, dword [rdi + r12]
cmp dword [0x18015ff04], eax
jle 0x1800555d4
lea rcx, [0x18015ff04]
call fcn.1800e1570
cmp dword [0x18015ff04], 0xffffffff
jne 0x1800555d4
movabs rcx, 0xc474270c7cea7824
call fcn.180071fb0
lea rcx, [0x18015ff04]
mov dword [0x18015fe44], eax
call fcn.1800e1504
jmp 0x1800555d4
mov rbx, qword [rax + 0x1f0]
test rbx, rbx
je 0x180054aff
mov eax, 4
mov eax, dword [rdi + rax]
cmp dword [0x18016003c], eax
jle 0x1800552b9
lea rcx, [0x18016003c]
call fcn.1800e1570
cmp dword [0x18016003c], 0xffffffff
jne 0x1800552b9
movabs rax, 0xca3dba51769d7be7
movabs rdx, 0xfc089a6443bd4bd3
mov qword [rsp + 0x30], rax
movabs r8, 0xc301a9f9a303b420
mov rax, qword [rsp + 0x30]
movabs r9, 0xe8cc74eaea088f95
mov qword [rbp + 0x150], rax
movabs rcx, 0x6d06d26f0319af22
movabs rax, 0xf62198cd83348100
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x158], rax
movabs rax, 0xc8f941cadb3cafa1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x160], rax
movabs rax, 0x5c32f25936399e16
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x168], rax
movabs rax, 0x5d4a37a4cf590107
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x170], rax
movabs rax, 0x6663901509bea185
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x178], rax
mov qword [rsp + 0x30], rdx
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r8
mov qword [rbp + 0x310], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r9
mov qword [rbp + 0x318], rax
mov rax, qword [rsp + 0x30]
movdqa xmm0, xmmword [rbp + 0x310]
mov qword [rsp + 0x30], rcx
mov qword [rbp + 0x320], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x328], rax
movabs rax, 0x656a0f90ef6e3427
movdqa xmm1, xmmword [rbp + 0x320]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x330], rax
movabs rax, 0x6653d4354afb81b4
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
xorps xmm0, xmmword [rbp + 0x150]
xorps xmm1, xmmword [rbp + 0x160]
mov qword [rbp + 0x338], rax
movabs rax, 0xfc6d9a0d43d14bb0
movdqa xmmword [rbp + 0x150], xmm0
movdqa xmm0, xmmword [rbp + 0x170]
xorps xmm0, xmmword [rbp + 0x330]
movdqa xmmword [rbp + 0x170], xmm0
movdqa xmmword [rbp + 0x160], xmm1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x130], rax
movabs rax, 0xc365a9d7a377b44e
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x138], rax
movabs rax, 0xe8cc74eaea648ff9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x140], rax
mov qword [rsp + 0x30], rcx
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x148], rax
mov qword [rsp + 0x30], rdx
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r8
mov qword [rbp + 0x310], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r9
mov qword [rbp + 0x318], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x320], rax
movdqa xmm0, xmmword [rbp + 0x310]
lea rdx, [rbp + 0x150]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0x130]
mov rax, qword [rsp + 0x30]
xorps xmm0, xmmword [rbp + 0x130]
mov qword [rbp + 0x328], rax
movdqa xmm1, xmmword [rbp + 0x320]
xorps xmm1, xmmword [rbp + 0x140]
movdqa xmmword [rbp + 0x140], xmm1
movdqa xmmword [rbp + 0x130], xmm0
call fcn.18007e2e0
lea rcx, [0x18016003c]
mov qword [0x18015fee0], rax
call fcn.1800e1504
mov edx, 1
mov rcx, r14
call qword [0x18015fee0]
movsxd rax, dword [0x18015f474]
xorps xmm0, xmm0
shl rax, 5
xorps xmm1, xmm1
movss xmm6, dword [rax + rbx]
movss xmm7, dword [rax + rbx + 4]
movss xmm8, dword [rax + rbx + 8]
xor eax, eax
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x98], rax
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm1
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0x188], 0x1c3003
mov qword [rbp + 0x198], rsi
mov qword [rbp + 0x190], rsi
mov dword [rbp + 0x1b4], 0x49040007
mov byte [rbp + 0x1b8], al
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0xc8], xmm0
movups xmmword [rbp + 0xd8], xmm0
movups xmmword [rbp + 0xe8], xmm0
movups xmmword [rbp + 0xf8], xmm0
movups xmmword [rbp + 0x108], xmm0
movups xmmword [rbp + 0x118], xmm0
test r13, r13
je 0x1800553bd
lea rdx, [rbp - 0x10]
mov rcx, r13
call fcn.180058400
mov ecx, dword [rax]
and ecx, 0x7fff
mov dword [rbp + 0x1a0], ecx
mov rcx, r13
call fcn.1800787b0
mov rcx, r13
mov dword [rbp + 0x1a8], eax
call fcn.180078950
mov word [rbp + 0x1b0], ax
mov rax, qword [r13]
lea rdx, [rsp + 0x78]
xorps xmm0, xmm0
mov qword [rbp + 0x1f0], rsi
xorps xmm1, xmm1
mov qword [rsp + 0x78], rsi
mov rcx, r13
mov dword [rbp - 0x80], esi
movups xmmword [rbp + 0x1c0], xmm0
movups xmmword [rbp + 0x1d0], xmm1
movups xmmword [rbp + 0x1e0], xmm0
call qword [rax + 0x530]
mov eax, dword [rbp - 0x80]
lea r9, [rbp - 0x40]
movsd xmm0, qword [rsp + 0x78]
lea r8, [rbp - 0x70]
mov dword [rbp - 0x68], eax
lea rdx, [rbp + 0x1c0]
lea rax, [rbp + 0x20]
movss dword [rbp - 0x40], xmm6
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x180]
mov qword [rsp + 0x20], rax
movss dword [rbp - 0x3c], xmm7
movss dword [rbp - 0x38], xmm8
movsd qword [rbp - 0x70], xmm0
call fcn.180052cf0
cmp qword [rbp + 0x28], rsi
je 0x180054aff
mov rax, qword [0x180160928]
shl rax, 5
add rax, qword [0x18015f4b8]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x18005546d
mov rcx, qword [rcx]
cmp byte [rcx], sil
jne 0x180055485
movss xmm0, dword [rbp + 0xcc]
comiss xmm0, xmm9
ja 0x1800554f6
jmp 0x180054aff
mov rax, qword [r13]
lea rdx, [rbp - 0x7c]
mov rcx, r13
mov qword [rbp - 0x7c], rsi
mov dword [rbp - 0x74], esi
call qword [rax + 0x530]
mov eax, dword [rbp - 0x74]
lea rdx, [rbp - 0x30]
movsd xmm0, qword [rbp - 0x7c]
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x58], eax
mov r9, r15
lea rax, [rsp + 0x64]
movss dword [rbp - 0x30], xmm6
mov qword [rsp + 0x28], rax
mov r8, r13
mov rax, qword [rbp]
mov qword [rsp + 0x20], rax
movss dword [rbp - 0x2c], xmm7
movss dword [rbp - 0x28], xmm8
movsd qword [rsp + 0x50], xmm0
call fcn.1800563e0
ucomiss xmm0, xmm11
movaps xmm12, xmm0
jp 0x1800554f6
je 0x180054aff
mov rdx, qword [rbp - 0x50]
lea r8, [rbp - 0x20]
mov r9, r13
movss dword [rbp - 0x20], xmm6
lea rcx, [rbp + 8]
movss dword [rbp - 0x1c], xmm7
movss dword [rbp - 0x18], xmm8
call fcn.180053740
movss xmm0, dword [rax + 4]
movss xmm1, dword [rax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180055540
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180055548
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov rdx, qword [0x18015f4b8]
mov rax, qword [0x180160968]
shl rax, 5
lea rcx, [rdx + 0x18]
add rcx, rax
cmp qword [rax + rdx + 0x10], 8
jbe 0x18005556c
mov rcx, qword [rcx]
comiss xmm0, dword [rcx]
jbe 0x180055597
mov rax, qword [0x180160960]
lea rcx, [rdx + 0x18]
shl rax, 5
add rcx, rax
cmp qword [rax + rdx + 0x10], 8
jbe 0x18005558e
mov rcx, qword [rcx]
cmp byte [rcx], sil
jne 0x180054aff
mov rbx, r12
mov qword [rsp + 0x40], r15
lea rdx, [rbp + 0x20]
mov qword [rsp + 0x38], rbx
lea rcx, [rbp + 0x200]
movaps xmm13, xmm6
movaps xmm14, xmm7
movaps xmm15, xmm8
mov r12, r15
call fcn.180055860
mov r14d, 4
jmp 0x180054b22
mov r12d, 4
lea rcx, [rsp + 0x70]
call fcn.1800531d0
mov rbx, qword [rsp + 0x70]
movabs rax, 0x431bde82d7b634db
mov rcx, rbx
sub rcx, qword [0x18015fb58]
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, qword [0x180160980]
shl rax, 5
add rax, qword [0x18015f4b8]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x180055628
mov rcx, qword [rcx]
movss xmm0, dword [rcx]
xorps xmm1, xmm1
mulss xmm0, dword [0x18014d6ac]
cvtsi2ss xmm1, rdx
comiss xmm1, xmm0
jb 0x1800557ad
mov eax, dword [rdi + r12]
cmp dword [0x18015fee8], eax
jle 0x180055687
lea rcx, [0x18015fee8]
call fcn.1800e1570
cmp dword [0x18015fee8], 0xffffffff
jne 0x180055687
movabs rcx, 0x39909e4dfce32507
call fcn.180071fb0
lea rcx, [0x18015fee8]
mov dword [0x18015fef8], eax
call fcn.1800e1504
mov eax, dword [0x18015fef8]
cmp dword [rax + r13], esi
jne 0x1800557a6
mov eax, dword [rdi + r12]
cmp dword [0x18015fe40], eax
jle 0x1800556d9
lea rcx, [0x18015fe40]
call fcn.1800e1570
cmp dword [0x18015fe40], 0xffffffff
jne 0x1800556d9
movabs rcx, 0x86412bfd7b3bd582
call fcn.180071fb0
lea rcx, [0x18015fe40]
mov dword [0x18016002c], eax
call fcn.1800e1504
mov eax, dword [0x18016002c]
movss xmm1, dword [0x18014d604]
movsd xmm0, qword [rax + r13]
comiss xmm1, xmm0
movsd qword [rsp + 0x50], xmm0
jbe 0x1800557a6
comiss xmm1, dword [rsp + 0x54]
jbe 0x1800557a6
comiss xmm1, dword [rax + r13 + 8]
jbe 0x1800557a6
movss xmm0, dword [rbp + 0x2ac]
comiss xmm0, dword [0x18014d534]
ja 0x18005574a
mov rax, qword [0x180160970]
shl rax, 5
add rax, qword [0x18015f4b8]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x180055744
mov rcx, qword [rcx]
comiss xmm12, dword [rcx]
jb 0x1800557a6
mov rcx, qword [r14 + 0x38]
mov eax, dword [rcx]
test eax, eax
jle 0x1800557a6
mov rdi, rsi
cmp esi, eax
jge 0x180055796
cmp esi, dword [r14 + 0x30]
jge 0x180055796
mov rdx, qword [rdi + rcx + 8]
test rdx, rdx
je 0x180055796
mov r8, qword [rdx + 0x18]
mov rcx, r15
add r8, 0x18
call fcn.180057530
mov eax, dword [r14 + 0x18]
test al, 8
jne 0x18005578a
or eax, 8
mov dword [r14 + 0x18], eax
mov rax, qword [r15 + 0x38]
mov qword [rax + 0x18], 1
mov rcx, qword [r14 + 0x38]
inc esi
add rdi, 8
mov eax, dword [rcx]
cmp esi, eax
jl 0x18005575b
mov qword [0x18015fb58], rbx
movaps xmm10, xmmword [rsp + 0x4a0]
movaps xmm8, xmmword [rsp + 0x4c0]
movaps xmm7, xmmword [rsp + 0x4d0]
movaps xmm6, xmmword [rsp + 0x4e0]
movaps xmm9, xmmword [rsp + 0x4b0]
movaps xmm11, xmmword [rsp + 0x490]
movaps xmm12, xmmword [rsp + 0x480]
movaps xmm13, xmmword [rsp + 0x470]
movaps xmm14, xmmword [rsp + 0x460]
movaps xmm15, xmmword [rsp + 0x450]
mov r15, qword [rsp + 0x4f0]
mov r14, qword [rsp + 0x548]
mov rcx, qword [rbp + 0x340]
xor rcx, rsp
call fcn.1800e1360
add rsp, 0x4f8
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [0x180160010], 0
mov dword [0x180160018], 0
mov dword [0x18015fe38], 0
jmp 0x180055805