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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x2a0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x140113040]
xor rax, rsp
mov qword [rbp + 0xf0], rax
mov r13, rcx
mov qword [rbp + 0x90], rcx
xor r12d, r12d
mov dword [rsp + 0x68], r12d
mov rbx, qword [0x140114f40]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
lea rax, [0x1400f4b2c]
mov qword [rsp + 0x28], rax
movss xmm0, dword [0x1400fdf94]
movss dword [rsp + 0x20], xmm0
movss xmm10, dword [0x1400fdf78]
movaps xmm3, xmm10
movss xmm2, dword [rbx + 0x3db8]
lea rdx, [rsp + 0x70]
mov rcx, qword [rbx + 0x3db0]
call fcn.14002f5a0
movss xmm1, dword [rax]
movss xmm0, dword [rbx + 0x3db8]
addss xmm0, dword [rbx + 0x3978]
mulss xmm0, dword [r13]
movss dword [r13 + 0x308], xmm1
movss dword [r13 + 0x30c], xmm0
lea rsi, [r13 + 0xd0]
mov rdx, rsi
mov r8d, 7
movss xmm2, dword [0x1400fddfc]
xorps xmm15, xmm15
movss xmm0, dword [0x1400fdf4c]
movss xmm9, dword [0x1400fde3c]
mov ecx, dword [rdx - 0x54]
movzx eax, cl
xorps xmm5, xmm5
cvtsi2ss xmm5, rax
mulss xmm5, xmm2
mov eax, ecx
shr eax, 8
movzx eax, al
xorps xmm4, xmm4
cvtsi2ss xmm4, rax
mulss xmm4, xmm2
mov eax, ecx
shr eax, 0x10
movzx eax, al
xorps xmm6, xmm6
cvtsi2ss xmm6, rax
mulss xmm6, xmm2
shr ecx, 0x18
mov eax, ecx
xorps xmm3, xmm3
cvtsi2ss xmm3, rax
mulss xmm3, xmm2
mulss xmm3, dword [rbx + 0x3928]
movss xmm11, dword [0x1400fde74]
comiss xmm15, xmm5
jbe 0x14004033a
movaps xmm1, xmm15
jmp 0x140040342
movaps xmm1, xmm11
minss xmm1, xmm5
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si ecx, xmm1
comiss xmm15, xmm4
jbe 0x14004035b
movaps xmm1, xmm15
jmp 0x140040363
movaps xmm1, xmm11
minss xmm1, xmm4
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm15, xmm6
jbe 0x140040381
movaps xmm1, xmm15
jmp 0x140040389
movaps xmm1, xmm11
minss xmm1, xmm6
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm15, xmm3
jbe 0x1400403a7
movaps xmm1, xmm15
jmp 0x1400403af
movaps xmm1, xmm11
minss xmm1, xmm3
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov dword [rdx], eax
mov ecx, dword [rdx - 0x50]
movzx eax, cl
xorps xmm6, xmm6
cvtsi2ss xmm6, rax
mulss xmm6, xmm2
mov eax, ecx
shr eax, 8
movzx eax, al
xorps xmm4, xmm4
cvtsi2ss xmm4, rax
mulss xmm4, xmm2
mov eax, ecx
shr eax, 0x10
movzx eax, al
xorps xmm5, xmm5
cvtsi2ss xmm5, rax
mulss xmm5, xmm2
shr ecx, 0x18
mov eax, ecx
xorps xmm3, xmm3
cvtsi2ss xmm3, rax
mulss xmm3, xmm2
mulss xmm3, dword [rbx + 0x3928]
comiss xmm15, xmm6
jbe 0x140040422
movaps xmm1, xmm15
jmp 0x14004042a
movaps xmm1, xmm11
minss xmm1, xmm6
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si ecx, xmm1
comiss xmm15, xmm4
jbe 0x140040443
movaps xmm1, xmm15
jmp 0x14004044b
movaps xmm1, xmm11
minss xmm1, xmm4
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm15, xmm5
jbe 0x140040469
movaps xmm1, xmm15
jmp 0x140040471
movaps xmm1, xmm11
minss xmm1, xmm5
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm15, xmm3
jbe 0x14004048f
movaps xmm1, xmm15
jmp 0x140040497
movaps xmm1, xmm11
minss xmm1, xmm3
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov dword [rdx + 4], eax
mov ecx, dword [rdx - 0x4c]
movzx eax, cl
xorps xmm6, xmm6
cvtsi2ss xmm6, rax
mulss xmm6, xmm2
mov eax, ecx
shr eax, 8
movzx eax, al
xorps xmm4, xmm4
cvtsi2ss xmm4, rax
mulss xmm4, xmm2
mov eax, ecx
shr eax, 0x10
movzx eax, al
xorps xmm5, xmm5
cvtsi2ss xmm5, rax
mulss xmm5, xmm2
shr ecx, 0x18
mov eax, ecx
xorps xmm3, xmm3
cvtsi2ss xmm3, rax
mulss xmm3, xmm2
mulss xmm3, dword [rbx + 0x3928]
comiss xmm15, xmm6
jbe 0x14004050b
movaps xmm1, xmm15
jmp 0x140040513
movaps xmm1, xmm11
minss xmm1, xmm6
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si ecx, xmm1
comiss xmm15, xmm4
jbe 0x14004052c
movaps xmm1, xmm15
jmp 0x140040534
movaps xmm1, xmm11
minss xmm1, xmm4
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm15, xmm5
jbe 0x140040552
movaps xmm1, xmm15
jmp 0x14004055a
movaps xmm1, xmm11
minss xmm1, xmm5
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm15, xmm3
jbe 0x140040578
movaps xmm1, xmm15
jmp 0x140040580
movaps xmm1, xmm11
minss xmm1, xmm3
mulss xmm1, xmm0
addss xmm1, xmm9
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov dword [rdx + 8], eax
add rdx, 0xc
sub r8, 1
jne 0x1400402d2
mov rax, qword [rbx + 0x40a0]
movss xmm8, dword [rax + 0x26c]
subss xmm8, dword [rax + 0x2c]
movss xmm0, dword [rax + 0x268]
subss xmm0, dword [rax + 0x28]
movss dword [rsp + 0x60], xmm0
mov byte [rax + 0xcc], 1
mov rax, qword [rbx + 0x40a0]
mov r14, qword [rax + 0x2b0]
mov qword [rsp + 0x78], r14
movss xmm13, dword [r13 + 0x60]
movss dword [rsp + 0x5c], xmm13
cmp byte [r13 + 0x5c], r12b
je 0x140040619
mov byte [r13 + 0x5c], r12b
mov rax, qword [rbx + 0x40a0]
mov dword [rax + 0xac], r12d
mov dword [rax + 0xb4], r12d
mov dword [rax + 0xbc], r12d
mov rax, qword [rbx + 0x40a0]
movss xmm14, dword [rax + 0x118]
movss dword [rsp + 0x68], xmm14
movss xmm0, dword [rax + 0x11c]
movss dword [rbp - 0x48], xmm0
movss xmm12, dword [rax + 0x98]
movss dword [rsp + 0x64], xmm12
movss xmm7, dword [rax + 0x9c]
movss xmm6, dword [r13 + 0x30c]
movaps xmm0, xmm7
divss xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si r15d, xmm0
mov dword [rsp + 0x58], r15d
addss xmm8, xmm7
divss xmm8, xmm6
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si r8d, xmm0
add r8d, r15d
mov rcx, qword [r13 + 0x10]
sub rcx, qword [r13 + 8]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea eax, [rdx - 1]
cmp r8d, eax
cmovl eax, r8d
mov edi, r12d
test eax, eax
cmovg edi, eax
mov r9d, edx
lea r8, str.__d
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rbp + 0xe0]
call fcn.14003bec0
mov rbx, qword [0x140114f40]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x28], rax
movss xmm8, dword [0x1400fdf94]
movss dword [rsp + 0x20], xmm8
movaps xmm3, xmm10
movss xmm2, dword [rbx + 0x3db8]
lea rdx, [rsp + 0x70]
mov rcx, qword [rbx + 0x3db0]
call fcn.14002f5a0
movd xmm0, dword [r13 + 0x64]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rax]
movss dword [r13 + 0x60], xmm0
mov rax, qword [r13 + 0x10]
cmp qword [r13 + 8], rax
je 0x140041cc1
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
lea rax, [0x1400f47f0]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm8
movaps xmm3, xmm10
movss xmm2, dword [rbx + 0x3db8]
lea rdx, [rbp + 0xa0]
mov rcx, qword [rbx + 0x3db0]
call fcn.14002f5a0
movss xmm10, dword [rax]
movss dword [rbp - 0x3c], xmm10
movabs rax, 0xcbf29ce484222325
mov qword [rbp - 0x78], rax
cmp r15d, edi
jg 0x140041a25
movsxd rax, r15d
mov qword [rbp + 0x78], rax
movsxd rcx, edi
mov qword [rsp + 0x70], rcx
movaps xmm0, xmm14
addss xmm0, xmm12
movss dword [rbp - 0x44], xmm0
movss dword [rbp - 0x58], xmm0
mov edi, r15d
nop dword [rax]
movd xmm12, edi
cvtdq2ps xmm12, xmm12
mulss xmm12, dword [r13 + 0x30c]
addss xmm12, dword [rbp - 0x48]
movss dword [rbp - 0x40], xmm12
movaps xmm13, xmm14
addss xmm13, dword [r13 + 0x60]
movss dword [rbp - 0x80], xmm13
lea r15, [rax + rax*2]
mov qword [rbp + 0x68], r15
mov rax, qword [r13 + 8]
mov qword [rbp - 0x50], rax
mov edx, edi
mov rcx, r13
call fcn.14003e580
mov dword [rbp + 0x80], edi
mov dword [rbp + 0x84], eax
lea rdx, [rbp + 0x80]
mov rcx, r13
call fcn.1400455b0
addss xmm0, dword [r13 + 0x60]
movss xmm1, dword [rsp + 0x5c]
maxss xmm1, xmm0
movss dword [rsp + 0x5c], xmm1
mov edx, edi
mov rcx, r13
call fcn.14003e580
mov ebx, eax
mov dword [rbp + 0xd8], edi
mov dword [rbp + 0xdc], eax
movaps xmm7, xmm8
movaps xmm6, xmm8
mov ecx, dword [r13 + 0x20]
cmp ecx, edi
je 0x140040876
setl dl
jmp 0x14004087d
cmp dword [r13 + 0x24], ebx
setle dl
test dl, dl
je 0x1400408a6
cmp ecx, edi
jne 0x14004088a
cmp dword [r13 + 0x24], 0
setg al
test al, al
je 0x1400408a2
lea rdx, [r13 + 0x20]
mov rcx, r13
call fcn.1400455b0
movaps xmm7, xmm0
jmp 0x1400408a6
movaps xmm7, xmm15
lea r8, [r13 + 0x28]
mov eax, dword [r8]
cmp eax, edi
jne 0x1400408b6
cmp dword [r8 + 4], 0
setg cl
test cl, cl
je 0x1400408e4
cmp eax, edi
jne 0x1400408c5
cmp dword [r13 + 0x2c], ebx
setl al
lea rdx, [rbp + 0xd8]
test al, al
cmovne rdx, r8
mov rcx, r13
call fcn.1400455b0
movaps xmm6, xmm0
lea r8, [r13 + 0x28]
cmp dword [r8], edi
jle 0x1400408f2
addss xmm6, dword [r13 + 0x308]
ucomiss xmm7, xmm8
jp 0x1400408fa
je 0x14004096a
ucomiss xmm6, xmm8
jp 0x140040902
je 0x14004096a
comiss xmm6, xmm7
jbe 0x14004096a
movaps xmm2, xmm14
addss xmm2, dword [r13 + 0x60]
movaps xmm0, xmm2
addss xmm0, xmm7
movss dword [rbp - 0x30], xmm0
movss dword [rbp - 0x2c], xmm12
movaps xmm1, xmm12
addss xmm1, dword [r13 + 0x30c]
addss xmm2, xmm6
movss dword [rbp + 0x88], xmm2
movss dword [rbp + 0x8c], xmm1
mov dword [rsp + 0x28], r12d
movss dword [rsp + 0x20], xmm15
mov r9d, dword [r13 + 0x108]
lea r8, [rbp + 0x88]
lea rdx, [rbp - 0x30]
mov rcx, r14
call fcn.14002b9d0
movss dword [rbp - 0x54], xmm12
lea ebx, [rdi + 1]
mov r8d, ebx
mov eax, ebx
shr eax, 8
movzx edx, al
movzx eax, bl
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r9, 0x100000001b3
imul rax, r9
xor rdx, rax
imul rdx, r9
mov eax, ebx
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, ebx
shr rax, 0x18
xor rdx, rax
imul rdx, r9
and rdx, qword [r13 + 0x2e8]
add rdx, rdx
mov rcx, qword [r13 + 0x2d0]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [r13 + 0x2c0]
je 0x1400409f8
mov rcx, qword [rcx + rdx*8]
cmp r8d, dword [rax + 0x10]
je 0x1400409fb
cmp rax, rcx
je 0x1400409f8
mov rax, qword [rax + 8]
cmp ebx, dword [rax + 0x10]
jne 0x1400409e8
jmp 0x1400409fb
mov rax, r12
test rax, rax
je 0x140040a55
movaps xmm2, xmm12
addss xmm2, dword [r13 + 0x30c]
movss xmm0, dword [rsp + 0x64]
movaps xmm1, xmm0
addss xmm1, xmm0
movaps xmm0, xmm14
addss xmm0, dword [rsp + 0x60]
addss xmm1, xmm0
movss dword [rbp - 0x28], xmm1
movss dword [rbp - 0x24], xmm2
mov dword [rsp + 0x28], r12d
movss dword [rsp + 0x20], xmm15
mov r9d, dword [r13 + 0x110]
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x58]
mov rcx, r14
call fcn.14002b9d0
mov rax, qword [r13 + 0x2f8]
mov rcx, qword [rax + 8]
mov rdi, rax
cmp byte [rcx + 0x19], 0
jne 0x140040a87
nop dword [rax]
cmp dword [rcx + 0x20], ebx
jge 0x140040a7b
mov rcx, qword [rcx + 0x10]
jmp 0x140040a81
mov rdi, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x140040a70
cmp byte [rdi + 0x19], 0
jne 0x140040ce3
cmp ebx, dword [rdi + 0x20]
jl 0x140040ce3
cmp rdi, rax
je 0x140040ce3
movaps xmm7, xmm12
addss xmm7, dword [r13 + 0x30c]
movaps xmm6, xmm14
addss xmm6, dword [rsp + 0x60]
movss xmm1, dword [rsp + 0x64]
movaps xmm0, xmm1
addss xmm0, xmm1
addss xmm6, xmm0
movss dword [rbp - 0x20], xmm6
movss dword [rbp - 0x1c], xmm7
mov dword [rsp + 0x28], r12d
movss dword [rsp + 0x20], xmm15
mov r9d, dword [r13 + 0x10c]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x58]
mov rcx, r14
call fcn.14002b9d0
mov rcx, qword [0x140114f40]
mov rax, qword [rcx + 0x40a0]
movaps xmm1, xmm12
maxss xmm1, dword [rax + 0x254]
movaps xmm0, xmm14
maxss xmm0, dword [rax + 0x250]
minss xmm7, dword [rax + 0x25c]
minss xmm6, dword [rax + 0x258]
movss xmm4, dword [rcx + 0xe0]
movss xmm2, dword [rcx + 0x398c]
subss xmm0, xmm2
comiss xmm4, xmm0
jb 0x140040ce3
movss xmm3, dword [rcx + 0xe4]
movss xmm0, dword [rcx + 0x3990]
subss xmm1, xmm0
comiss xmm3, xmm1
jb 0x140040ce3
addss xmm2, xmm6
comiss xmm2, xmm4
jbe 0x140040ce3
addss xmm0, xmm7
comiss xmm0, xmm3
jbe 0x140040ce3
xor ecx, ecx
call fcn.140019450
mov rbx, qword [0x140114f40]
mov dword [rbp - 0x70], r12d
movups xmm0, xmmword [rbx + 0x3a18]
movups xmmword [rbp - 0x6c], xmm0
lea rcx, [rbx + 0x4b38]
lea rdx, [rbp - 0x70]
call fcn.140020640
cmp dword [rbx + 0x4b34], 0
je 0x140040bc7
movdqa xmm0, xmmword [0x1400fe230]
movups xmmword [rbx + 0x3a18], xmm0
mov edx, dword [rdi + 0x20]
lea rcx, str.Error_at_line__d:
call fcn.140032950
mov rbx, qword [0x140114f40]
movsxd rax, dword [rbx + 0x4b38]
cmp eax, 1
jl 0x140040c0f
lea rdx, [rax + rax*4]
mov rcx, qword [rbx + 0x4b40]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [rbx + rax*8 + 0x3a18], xmm0
dec dword [rbx + 0x4b38]
mov rdx, qword [rbx + 0x40a0]
cmp byte [rdx + 0xcf], 0
jne 0x140040c52
mov r8d, dword [rdx + 0x1cc]
mov eax, r8d
neg eax
sbb ecx, ecx
add ecx, 2
cmp qword [rdx + 0x1c0], 0
je 0x140040c42
neg r8d
sbb ecx, ecx
add ecx, 6
movaps xmm1, xmm11
call fcn.140034ea0
mov rbx, qword [0x140114f40]
mov dword [rbp - 0x70], r12d
movups xmm0, xmmword [rbx + 0x3a18]
movups xmmword [rbp - 0x6c], xmm0
lea rcx, [rbx + 0x4b38]
lea rdx, [rbp - 0x70]
call fcn.140020640
cmp dword [rbx + 0x4b34], 0
je 0x140040c89
movdqa xmm0, xmmword [0x1400fe240]
movups xmmword [rbx + 0x3a18], xmm0
lea rdx, [rdi + 0x28]
cmp qword [rdx + 0x18], 0xf
jbe 0x140040c97
mov rdx, qword [rdx]
lea rcx, [0x1400e46d4]
call fcn.140032950
mov r8, qword [0x140114f40]
movsxd rax, dword [r8 + 0x4b38]
cmp eax, 1
jl 0x140040cde
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4b40]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [r8 + rax*8 + 0x3a18], xmm0
dec dword [r8 + 0x4b38]
call fcn.140014510
mov edi, dword [rsp + 0x58]
lea r9d, [rdi + 1]
lea r8, str._d
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rbp + 0xe0]
call fcn.14003bec0
mov rbx, qword [0x140114f40]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm8
movss xmm6, dword [0x1400fdf78]
movaps xmm3, xmm6
movss xmm2, dword [rbx + 0x3db8]
lea rdx, [rbp + 0xa8]
mov rcx, qword [rbx + 0x3db0]
call fcn.14002f5a0
mov ecx, dword [r13 + 0x114]
movaps xmm0, xmm14
addss xmm0, dword [r13 + 0x60]
subss xmm0, dword [rax]
movss dword [rbp - 0x18], xmm0
movss dword [rbp - 0x14], xmm12
test ecx, 0xff000000
je 0x140040def
cmp byte [rbp + 0xe0], 0
je 0x140040def
lea rdx, [rbp + 0xe0]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x140040d90
lea rdx, [rbp + 0xe0]
add rdx, rax
mov rax, qword [r14 + 0x38]
movups xmm0, xmmword [r14 + 0x60]
movups xmmword [rbp - 0x70], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm15
mov qword [rsp + 0x38], rdx
lea rdx, [rbp + 0xe0]
mov qword [rsp + 0x30], rdx
lea rdx, [rbp - 0x70]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], ecx
lea r9, [rbp - 0x18]
movss xmm2, dword [rax + 0x10]
mov rdx, r14
mov rcx, qword [rax + 8]
call fcn.14002f9b0
cmp dword [r13 + 0x30], edi
jne 0x1400410f1
mov rax, qword [0x140114f40]
mov rcx, qword [rax + 0x4bd8]
test rcx, rcx
jne 0x140040e10
xor bl, bl
jmp 0x140040e1a
cmp rcx, qword [rax + 0x40a0]
sete bl
mov eax, dword [r13 + 0x28]
cmp eax, dword [r13 + 0x20]
jne 0x140040e2c
mov eax, dword [r13 + 0x24]
cmp dword [r13 + 0x2c], eax
setg al
test al, al
jne 0x140040f4c
movaps xmm7, xmm12
addss xmm7, dword [r13 + 0x30c]
movss xmm14, dword [rbp - 0x44]
movaps xmm6, xmm14
addss xmm6, dword [rsp + 0x60]
addss xmm6, dword [rsp + 0x64]
movss dword [rbp - 0x10], xmm6
movss dword [rbp - 0xc], xmm7
movzx r9d, bl
xor r9, 1
mov dword [rsp + 0x28], r12d
movss dword [rsp + 0x20], xmm15
mov r9d, dword [rsi + r9*4 + 0x48]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 0x58]
mov rcx, r14
call fcn.14002b9d0
mov edi, dword [r13 + 0x120]
test edi, 0xff000000
je 0x140040f44
movaps xmm1, xmm12
addss xmm1, xmm9
movaps xmm0, xmm14
mov dword [rsp + 0x20], r12d
movaps xmm3, xmm11
mov rcx, r14
addss xmm0, xmm9
test byte [r14 + 0x30], 1
je 0x140040eed
subss xmm7, xmm9
subss xmm6, xmm9
movss dword [rbp - 8], xmm6
movss dword [rbp - 4], xmm7
movss dword [rbp], xmm0
movss dword [rbp + 4], xmm1
lea r8, [rbp - 8]
lea rdx, [rbp]
jmp 0x140040f19
subss xmm7, dword [0x1400fde38]
subss xmm6, dword [0x1400fde38]
movss dword [rbp + 8], xmm6
movss dword [rbp + 0xc], xmm7
movss dword [rbp + 0x10], xmm0
movss dword [rbp + 0x14], xmm1
lea r8, [rbp + 8]
lea rdx, [rbp + 0x10]
call fcn.14002b3b0
movss dword [rsp + 0x28], xmm11
mov dword [rsp + 0x20], 1
mov r9d, edi
mov r8d, dword [r14 + 0x50]
mov rdx, qword [r14 + 0x58]
mov rcx, r14
call fcn.1400295b0
mov dword [r14 + 0x50], r12d
movss xmm6, dword [0x1400fdf78]
test bl, bl
je 0x1400410f1
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
mov rcx, rax
movabs rax, 0x346dc5d63886594b
imul rcx
mov rbx, rdx
sar rbx, 0xb
mov rax, rbx
shr rax, 0x3f
add rbx, rax
mov rdi, rbx
sub rdi, qword [r13 + 0x340]
cmp rdi, 0x190
jbe 0x1400410f1
movaps xmm7, xmm11
lea rdx, [r13 + 0x30]
mov rcx, r13
call fcn.14003e2f0
movsxd rsi, eax
lea rdx, [r13 + 0x30]
mov rcx, r13
call fcn.1400455b0
movaps xmm8, xmm0
cmp byte [r13 + 0x58], 0
je 0x140041088
mov rax, qword [rbp - 0x50]
mov r8, qword [rax + r15*8]
mov rcx, qword [rax + r15*8 + 8]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp esi, edx
jge 0x140041088
lea rcx, [rsi + rsi*2]
movzx eax, byte [r8 + rcx*4]
cmp al, 9
jne 0x14004102e
movd xmm6, dword [r13 + 0x54]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm10
addss xmm0, xmm11
divss xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
movaps xmm7, xmm0
addss xmm7, xmm11
mulss xmm7, xmm6
subss xmm7, xmm8
jmp 0x140041088
mov byte [rbp + 0xb0], al
mov byte [rbp + 0xb1], 0
mov rax, qword [0x140114f40]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
lea rcx, [rbp + 0xb0]
mov qword [rsp + 0x28], rcx
movss xmm0, dword [0x1400fdf94]
movss dword [rsp + 0x20], xmm0
movaps xmm3, xmm6
movss xmm2, dword [rax + 0x3db8]
lea rdx, [rbp + 0x98]
mov rcx, qword [rax + 0x3db0]
call fcn.14002f5a0
movss xmm7, dword [rax]
addss xmm8, xmm13
movss dword [rbp + 0x20], xmm8
movss dword [rbp + 0x24], xmm12
movaps xmm0, xmm12
addss xmm0, dword [r13 + 0x30c]
addss xmm7, xmm8
movss dword [rbp + 0x18], xmm7
movss dword [rbp + 0x1c], xmm0
mov dword [rsp + 0x28], r12d
movss dword [rsp + 0x20], xmm15
mov r9d, dword [r13 + 0x104]
lea r8, [rbp + 0x18]
lea rdx, [rbp + 0x20]
mov rcx, r14
call fcn.14002b9d0
movss xmm8, dword [0x1400fdf94]
cmp rdi, 0x320
jbe 0x1400410f1
mov qword [r13 + 0x340], rbx
mov rax, qword [rbp - 0x50]
mov r10, qword [rax + r15*8 + 8]
mov rsi, qword [rax + r15*8]
lea r8, [r13 + 0xd0]
cmp rsi, r10
jne 0x140041117
mov r11d, dword [r8]
mov dword [rsp + 0x50], r11d
jmp 0x1400411dc
cmp byte [r13 + 0x5e], 0
jne 0x14004112b
mov r11d, dword [r8]
mov dword [rsp + 0x50], r11d
jmp 0x1400411dc
movzx ecx, byte [rsi + 8]
test cl, 1
je 0x140041142
mov r11d, dword [r8 + 0x28]
mov dword [rsp + 0x50], r11d
jmp 0x1400411dc
test cl, 2
je 0x140041155
mov r11d, dword [r8 + 0x2c]
mov dword [rsp + 0x50], r11d
jmp 0x1400411dc
movsxd rax, dword [rsi + 4]
mov r9d, dword [r8 + rax*4]
test cl, 4
je 0x1400411d4
mov r11d, dword [r13 + 0xe8]
movzx r8d, r11b
movzx eax, r9b
add r8d, eax
shr r8d, 1
mov eax, r11d
shr eax, 8
movzx edx, al
mov eax, r9d
shr eax, 8
movzx eax, al
add edx, eax
shr edx, 1
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 0x10
movzx eax, al
add ecx, eax
shr ecx, 1
shr r11d, 0x18
shr r9d, 0x18
add r11d, r9d
shr r11d, 1
shl r11d, 8
or r11d, ecx
shl r11d, 8
or r11d, edx
shl r11d, 8
or r11d, r8d
mov dword [rsp + 0x50], r11d
lea r8, [r13 + 0xd0]
jmp 0x1400411dc
mov r11d, r9d
mov dword [rsp + 0x50], r9d
movaps xmm14, xmm15
mov edi, r12d
mov dword [rsp + 0x54], r12d
mov r15, r12
sub r10, rsi
movabs rax, 0x2aaaaaaaaaaaaaab
imul r10
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x14004192d
jmp 0x140041215
mov r11d, dword [rsp + 0x50]
lea r14, [r15 + r15*2]
cmp byte [r13 + 0x5e], 0
jne 0x140041228
mov ebx, dword [r8]
jmp 0x1400412b2
movzx ecx, byte [rsi + r14*4 + 8]
test cl, 1
je 0x140041239
mov ebx, dword [r8 + 0x28]
jmp 0x1400412b2
test cl, 2
je 0x140041244
mov ebx, dword [r8 + 0x2c]
jmp 0x1400412b2
movsxd rax, dword [rsi + r14*4 + 4]
mov r9d, dword [r8 + rax*4]
test cl, 4
je 0x1400412af
mov ebx, dword [r13 + 0xe8]
movzx r8d, bl
movzx eax, r9b
add r8d, eax
shr r8d, 1
mov eax, ebx
shr eax, 8
movzx edx, al
mov eax, r9d
shr eax, 8
movzx eax, al
add edx, eax
shr edx, 1
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 0x10
movzx eax, al
add ecx, eax
shr ecx, 1
shr ebx, 0x18
shr r9d, 0x18
add ebx, r9d
shr ebx, 1
shl ebx, 8
or ebx, ecx
shl ebx, 8
or ebx, edx
shl ebx, 8
or ebx, r8d
jmp 0x1400412b2
mov ebx, r9d
cmp ebx, r11d
jne 0x1400412c8
movzx eax, byte [rsi + r14*4]
cmp al, 9
je 0x1400412c8
cmp al, 0x20
jne 0x1400413e7
cmp qword [r13 + 0x330], 0
je 0x1400413e7
movaps xmm1, xmm12
addss xmm1, xmm15
movaps xmm0, xmm14
addss xmm0, xmm13
movss dword [rbp + 0x28], xmm0
movss dword [rbp + 0x2c], xmm1
lea rdi, [r13 + 0x320]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x140041306
mov rdx, qword [rdi]
test r11d, 0xff000000
je 0x140041377
test rdx, rdx
je 0x140041377
cmp byte [rdx], 0
je 0x140041377
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rdx + rcx], 0
jne 0x140041320
add rcx, rdx
mov r8, qword [rsp + 0x78]
mov rax, qword [r8 + 0x38]
movups xmm0, xmmword [r8 + 0x60]
movups xmmword [rbp - 0x70], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm15
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdx
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r11d
lea r9, [rbp + 0x28]
movss xmm2, dword [rax + 0x10]
mov rdx, r8
mov rcx, qword [rax + 8]
call fcn.14002f9b0
mov rax, qword [0x140114f40]
mov rcx, qword [rax + 0x3db0]
cmp qword [rdi + 0x18], 0xf
jbe 0x14004138f
mov rdi, qword [rdi]
mov rax, qword [0x140114f40]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm8
movss xmm3, dword [0x1400fdf78]
movss xmm2, dword [rax + 0x3db8]
lea rdx, [rbp - 0x38]
call fcn.14002f5a0
addss xmm14, dword [rbp - 0x38]
lea rax, [r13 + 0x320]
mov qword [rax + 0x10], r12
cmp qword [rax + 0x18], 0xf
jbe 0x1400413e0
mov rax, qword [rax]
mov byte [rax], 0
mov edi, dword [rsp + 0x54]
mov dword [rsp + 0x50], ebx
movzx ecx, byte [rsi + r14*4]
cmp cl, 9
jne 0x140041765
movaps xmm7, xmm14
movd xmm6, dword [r13 + 0x54]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm10
addss xmm14, xmm11
divss xmm14, xmm6
movaps xmm0, xmm14
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
movaps xmm14, xmm0
addss xmm14, xmm11
mulss xmm14, xmm6
inc edi
mov dword [rsp + 0x54], edi
inc r15
mov r14, qword [rsp + 0x78]
cmp byte [r13 + 0x7b], 0
je 0x1400418e3
mov rax, qword [0x140114f40]
movss xmm1, dword [rax + 0x3db8]
movaps xmm10, xmm14
addss xmm10, xmm13
subss xmm10, xmm11
movaps xmm11, xmm12
addss xmm11, xmm15
movaps xmm0, xmm1
mulss xmm0, xmm9
addss xmm11, xmm0
mulss xmm1, dword [0x1400fde18]
movaps xmm12, xmm10
subss xmm12, xmm1
movaps xmm9, xmm11
subss xmm9, xmm1
movaps xmm13, xmm11
addss xmm13, xmm1
movaps xmm8, xmm11
addss xmm8, dword [0x1400fde3c]
addss xmm7, dword [rbp - 0x80]
addss xmm7, dword [0x1400fde74]
addss xmm7, dword [0x1400fde3c]
movss dword [rbp + 0x30], xmm7
movss dword [rbp + 0x34], xmm8
mov r8d, dword [r14 + 0x54]
mov ecx, dword [r14 + 0x50]
cmp ecx, r8d
jne 0x1400414fe
inc ecx
test r8d, r8d
je 0x1400414e9
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x1400414ee
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
lea rcx, [r14 + 0x50]
call fcn.140020780
movsxd rdx, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rbp + 0x30]
mov qword [rcx + rdx*8], rax
mov r8d, dword [r14 + 0x50]
inc r8d
mov dword [r14 + 0x50], r8d
movaps xmm6, xmm10
movss xmm7, dword [0x1400fde3c]
addss xmm6, xmm7
movss dword [rbp + 0x38], xmm6
movss dword [rbp + 0x3c], xmm8
mov ecx, dword [r14 + 0x54]
cmp r8d, ecx
jne 0x140041567
inc r8d
test ecx, ecx
je 0x14004154f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x140041554
mov eax, 8
cmp eax, r8d
cmovg r8d, eax
mov edx, r8d
lea rcx, [r14 + 0x50]
call fcn.140020780
movsxd rdx, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rbp + 0x38]
mov qword [rcx + rdx*8], rax
inc dword [r14 + 0x50]
movss xmm0, dword [0x1400fde74]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r12d
mov r9d, 0x90909090
mov r8d, dword [r14 + 0x50]
mov rdx, qword [r14 + 0x58]
mov rcx, r14
call fcn.1400295b0
mov dword [r14 + 0x50], r12d
movss dword [rbp + 0x40], xmm6
movss dword [rbp + 0x44], xmm8
mov esi, 8
cmp dword [r14 + 0x54], 0
jne 0x1400415d3
mov edx, 1
test r12b, r12b
cmove edx, esi
lea rcx, [r14 + 0x50]
call fcn.140020780
movsxd rdx, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rbp + 0x40]
mov qword [rcx + rdx*8], rax
mov r8d, dword [r14 + 0x50]
inc r8d
mov dword [r14 + 0x50], r8d
addss xmm9, xmm7
addss xmm12, xmm7
movss dword [rbp + 0x48], xmm12
movss dword [rbp + 0x4c], xmm9
mov ecx, dword [r14 + 0x54]
cmp r8d, ecx
jne 0x140041634
inc r8d
test ecx, ecx
je 0x14004161f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x140041621
mov eax, esi
cmp eax, r8d
cmovg r8d, eax
mov edx, r8d
lea rcx, [r14 + 0x50]
call fcn.140020780
movsxd rdx, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rbp + 0x48]
mov qword [rcx + rdx*8], rax
inc dword [r14 + 0x50]
movss xmm0, dword [0x1400fde74]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r12d
mov r9d, 0x90909090
mov r8d, dword [r14 + 0x50]
mov rdx, qword [r14 + 0x58]
mov rcx, r14
call fcn.1400295b0
mov dword [r14 + 0x50], r12d
movss xmm9, dword [0x1400fde3c]
addss xmm11, xmm9
addss xmm10, xmm9
movss dword [rbp + 0x50], xmm10
movss dword [rbp + 0x54], xmm11
cmp dword [r14 + 0x54], 0
jne 0x1400416af
mov edx, 1
test r12b, r12b
cmove edx, esi
lea rcx, [r14 + 0x50]
call fcn.140020780
movsxd rdx, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rbp + 0x50]
mov qword [rcx + rdx*8], rax
mov r8d, dword [r14 + 0x50]
inc r8d
mov dword [r14 + 0x50], r8d
addss xmm13, xmm9
movss dword [rbp + 0x58], xmm12
movss dword [rbp + 0x5c], xmm13
mov ecx, dword [r14 + 0x54]
cmp r8d, ecx
jne 0x14004170b
inc r8d
test ecx, ecx
je 0x1400416f6
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1400416f8
mov eax, esi
cmp eax, r8d
cmovg r8d, eax
mov edx, r8d
lea rcx, [r14 + 0x50]
call fcn.140020780
movsxd rdx, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov rax, qword [rbp + 0x58]
mov qword [rcx + rdx*8], rax
inc dword [r14 + 0x50]
movss xmm11, dword [0x1400fde74]
movss dword [rsp + 0x28], xmm11
mov dword [rsp + 0x20], r12d
mov r9d, 0x90909090
mov r8d, dword [r14 + 0x50]
mov rdx, qword [r14 + 0x58]
mov rcx, r14
call fcn.1400295b0
mov dword [r14 + 0x50], r12d
movss xmm12, dword [rbp - 0x40]
movss xmm13, dword [rbp - 0x80]
movss xmm10, dword [rbp - 0x3c]
jmp 0x1400418e3
cmp cl, 0x20
jne 0x14004181a
mov r14, qword [rsp + 0x78]
cmp byte [r13 + 0x7b], 0
je 0x140041807
mov rax, qword [0x140114f40]
movss xmm2, dword [rax + 0x3db8]
movaps xmm3, xmm14
addss xmm3, xmm13
movaps xmm0, xmm10
mulss xmm0, xmm9
addss xmm3, xmm0
movaps xmm1, xmm12
addss xmm1, xmm15
mulss xmm2, xmm9
addss xmm1, xmm2
movss dword [rbp + 0x60], xmm3
movss dword [rbp + 0x64], xmm1
mov dword [rsp + 0x28], 3
movss xmm0, dword [0x1400fdef4]
movss dword [rsp + 0x20], xmm0
movaps xmm3, xmm15
movss xmm2, dword [0x1400fde90]
lea rdx, [rbp + 0x60]
mov rcx, r14
call fcn.14002af90
mov r9d, 0x80808080
mov r8d, dword [r14 + 0x50]
mov rdx, qword [r14 + 0x58]
mov rcx, r14
call fcn.14002a4d0
mov dword [r14 + 0x50], r12d
addss xmm14, xmm10
inc edi
mov dword [rsp + 0x54], edi
inc r15
jmp 0x1400418e3
movzx eax, cl
and al, 0xfe
cmp al, 0xfc
jne 0x14004182a
mov edi, 6
jmp 0x140041869
movzx eax, cl
and al, 0xfc
cmp al, 0xf8
jne 0x14004183a
mov edi, 5
jmp 0x140041869
movzx eax, cl
and al, 0xf8
cmp al, 0xf0
jne 0x14004184a
mov edi, 4
jmp 0x140041869
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x14004185a
mov edi, 3
jmp 0x140041869
and cl, 0xe0
mov edi, r12d
cmp cl, 0xc0
sete dil
inc edi
lea rbx, [r13 + 0x320]
lea rsi, [r15 + r15*2]
shl rsi, 2
add dword [rsp + 0x54], edi
mov eax, edi
add r15, rax
mov r14, qword [rbp + 0x68]
mov r12, qword [rbp - 0x50]
nop dword [rax]
dec edi
mov rax, qword [r12 + r14*8]
movzx r9d, byte [rsi + rax]
lea rsi, [rsi + 0xc]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x1400418cb
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x1400418c0
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x1400418d3
mov rcx, rbx
call fcn.140049a70
test edi, edi
jg 0x140041890
xor r12d, r12d
mov r14, qword [rsp + 0x78]
mov edi, dword [rsp + 0x54]
mov r8, qword [rbp + 0x68]
mov r9, qword [rbp - 0x50]
mov rsi, qword [r9 + r8*8]
mov rcx, qword [r9 + r8*8 + 8]
sub rcx, rsi
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, edi
cmp rax, rdx
movss xmm8, dword [0x1400fdf94]
lea r8, [r13 + 0xd0]
jb 0x140041210
cmp qword [r13 + 0x330], 0
je 0x1400419e7
addss xmm12, xmm15
addss xmm14, xmm13
movss dword [rbp + 0x70], xmm14
movss dword [rbp + 0x74], xmm12
lea rbx, [r13 + 0x320]
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x140041965
mov rdx, qword [rbx]
mov r8d, dword [rsp + 0x50]
test r8d, 0xff000000
je 0x1400419d6
test rdx, rdx
je 0x1400419d6
cmp byte [rdx], 0
je 0x1400419d6
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rdx + rcx], 0
jne 0x140041984
add rcx, rdx
mov rax, qword [r14 + 0x38]
movups xmm0, xmmword [r14 + 0x60]
movups xmmword [rbp - 0x70], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm15
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdx
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r8d
lea r9, [rbp + 0x70]
movss xmm2, dword [rax + 0x10]
mov rdx, r14
mov rcx, qword [rax + 8]
call fcn.14002f9b0
mov qword [rbx + 0x10], r12
cmp qword [rbx + 0x18], 0xf
jbe 0x1400419e4
mov rbx, qword [rbx]
mov byte [rbx], 0
mov edi, dword [rsp + 0x58]
inc edi
mov dword [rsp + 0x58], edi
mov rax, qword [rbp + 0x78]
inc rax
mov qword [rbp + 0x78], rax
cmp rax, qword [rsp + 0x70]
movss xmm8, dword [0x1400fdf94]
movss xmm14, dword [rsp + 0x68]
lea rsi, [r13 + 0xd0]
jle 0x1400407d0
movss xmm13, dword [rsp + 0x5c]
mov rax, qword [0x140114f40]
movss xmm0, dword [rax + 0xe0]
movss xmm2, dword [rax + 0xe4]
movss xmm1, dword [0x1400fdfb4]
comiss xmm0, xmm1
jb 0x140041cc1
comiss xmm2, xmm1
jb 0x140041cc1
movsd xmm0, qword [rax + 0xe0]
movsd qword [rsp + 0x70], xmm0
lea r8, [rsp + 0x70]
lea rdx, [rbp + 0x98]
mov rcx, r13
call fcn.14003d980
mov r15, rax
mov r8, rax
lea rdx, [rsp + 0x70]
mov rcx, r13
call fcn.14003dd10
mov r8, r15
lea rdx, [rbp - 0x38]
mov rcx, r13
call fcn.14003de80
xorps xmm0, xmm0
movups xmmword [rbp + 0xb8], xmm0
mov rdi, r12
mov qword [rbp + 0xc8], r12
mov esi, send
mov qword [rbp + 0xd0], rsi
mov byte [rbp + 0xb8], 0
mov dword [rsp + 0x68], 1
lea rdx, [rsp + 0x70]
mov rcx, r13
call fcn.14003e2f0
movsxd rbx, eax
lea rdx, [rbp - 0x38]
mov rcx, r13
call fcn.14003e2f0
mov rcx, rbx
movsxd r14, eax
cmp rbx, r14
jge 0x140041cb5
lea rbx, [rbx + rbx*2]
shl rbx, 2
sub r14, rcx
nop
movsxd rax, dword [r15]
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 8]
mov rax, qword [rax + rcx*8]
movzx r9d, byte [rbx + rax]
cmp rdi, rsi
jae 0x140041b42
lea rax, [rdi + 1]
mov qword [rbp + 0xc8], rax
lea rax, [rbp + 0xb8]
cmp rsi, 0xf
cmova rax, qword [rbp + 0xb8]
mov byte [rax + rdi], r9b
mov byte [rax + rdi + 1], 0
jmp 0x140041b4e
lea rcx, [rbp + 0xb8]
call fcn.140049a70
add rbx, 0xc
sub r14, 1
je 0x140041b68
mov rsi, qword [rbp + 0xd0]
mov rdi, qword [rbp + 0xc8]
jmp 0x140041b00
mov rbx, qword [rbp + 0xc8]
test rbx, rbx
je 0x140041cb5
lea rdx, [rbp + 0xb8]
mov r14, qword [rbp + 0xb8]
mov r15, qword [rbp + 0xd0]
cmp r15, 0xf
cmova rdx, r14
movabs r9, 0xcbf29ce484222325
mov rcx, r12
test rbx, rbx
je 0x140041bc4
movabs r8, 0x100000001b3
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r8
inc rcx
cmp rcx, rbx
jb 0x140041bb1
lea r8, [rbp + 0xb8]
lea rdx, [rbp - 0x70]
lea rcx, [r13 + 0x188]
call fcn.14004b1d0
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x140041beb
mov rdi, qword [r13 + 0x190]
cmp rdi, qword [r13 + 0x190]
je 0x140041c04
xor ecx, ecx
call fcn.140019450
lea rcx, [rdi + 0x38]
jmp 0x140041c9e
lea rdi, [r13 + 0x1c8]
lea rcx, [rbp + 0xb8]
cmp r15, 0xf
cmova rcx, r14
test rbx, rbx
je 0x140041c66
movabs rdi, 0xcbf29ce484222325
movabs r13, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + r12]
xor rdi, rax
imul rdi, r13
inc r12
cmp r12, rbx
jb 0x140041c40
mov qword [rbp - 0x78], rdi
mov r13, qword [rbp + 0x90]
lea rdi, [r13 + 0x1c8]
mov r9, qword [rbp - 0x78]
lea r8, [rbp + 0xb8]
lea rdx, [rbp - 0x70]
mov rcx, rdi
call fcn.14004b1d0
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140041c8a
mov rbx, qword [rdi + 8]
cmp rbx, qword [r13 + 0x1d0]
je 0x140041cb5
xor ecx, ecx
call fcn.140019450
lea rcx, [rbx + 0x38]
cmp qword [rcx + 0x18], 0xf
jbe 0x140041ca8
mov rcx, qword [rcx]
xor edx, edx
call fcn.140032280
call fcn.140014510
nop
lea rcx, [rbp + 0xb8]
call fcn.140047ab0
addss xmm13, dword [0x1400fdea0]
movss dword [rbp - 0x78], xmm13
mov rcx, qword [r13 + 0x10]
sub rcx, qword [r13 + 8]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
xorps xmm0, xmm0
js 0x140041cff
cvtsi2ss xmm0, rdx
jmp 0x140041d14
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, dword [r13 + 0x30c]
movss dword [rbp - 0x74], xmm0
lea rcx, [rbp - 0x78]
call fcn.140034d00
cmp byte [r13 + 0x5b], 0
je 0x140041d54
mov rcx, r13
call fcn.140045870
xor edx, edx
mov rcx, qword [0x140114f40]
mov rcx, qword [rcx + 0x40a0]
call fcn.140014720
mov byte [r13 + 0x5b], 0
mov rcx, qword [rbp + 0xf0]
xor rcx, rsp
call fcn.1400dde30
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret