Function at 0x7ff698f71fc0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x210
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 [0x7ff69902b080]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov rsi, rdx
mov qword [rsp + 0x68], rdx
mov r8, rdx
lea rdx, [rbp - 0x40]
lea rcx, [0x7ff6990565e0]
call fcn.7ff698f87f80
nop
cmp byte [rbp - 0x40], 0
je 0x7ff698f72b67
xor r12d, r12d
mov rdi, qword [rbp - 0x10]
test rdi, rdi
jne 0x7ff698f72065
mov r15d, r12d
jmp 0x7ff698f72095
lea rdx, [rdi + 0x258]
call fcn.7ff698f80a30
mov rdx, rax
call fcn.7ff698f80a30
mov rbx, rax
lea rdx, [rdi + 0x258]
call fcn.7ff698f80a30
xor eax, ebx
mov dword [rsp + 0x60], eax
cvttss2si r15d, dword [rsp + 0x60]
mov rdi, qword [rbp - 0x38]
test rdi, rdi
je 0x7ff698f720ac
lea rdx, [rdi + 0x60]
call fcn.7ff698f80a30
test rax, rax
jne 0x7ff698f720c6
mov byte [rbp - 0x40], r12b
lea rdx, [rsp + 0x68]
lea rcx, [0x7ff6990565f8]
call fcn.7ff698f72f40
mov rsi, qword [rsp + 0x68]
cmp qword [rbp - 0x30], r12
je 0x7ff698f72b67
cmp byte [0x7ff6990562f6], r12b
jne 0x7ff698f720f8
cmp byte [0x7ff6990562e6], r12b
jne 0x7ff698f720f8
cmp byte [0x7ff69905629f], r12b
jne 0x7ff698f720f8
cmp byte [0x7ff6990562e7], r12b
je 0x7ff698f72b67
mov r14, qword [rbp - 0x20]
test r14, r14
je 0x7ff698f72b67
mov rbx, qword [rbp - 0x28]
test rbx, rbx
je 0x7ff698f72b67
mov r8, rbx
lea rdx, [rbp - 0x70]
call fcn.7ff698f80420
mov r8, r14
lea rdx, [rbp + 0x30]
call fcn.7ff698f80420
movss xmm8, dword [rbp - 0x44]
xorps xmm15, xmm15
subss xmm8, xmm15
movss xmm7, dword [rbp - 0x48]
movaps xmm0, xmm7
subss xmm0, dword [0x7ff69901583c]
movss xmm6, dword [rbp - 0x4c]
subss xmm6, xmm15
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x44], xmm0
movss dword [rsp + 0x48], xmm8
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x80]
call fcn.7ff698f80740
subss xmm7, dword [0x7ff6990156dc]
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x44], xmm7
movss dword [rsp + 0x48], xmm8
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x70]
call fcn.7ff698f80740
cmp byte [rbp - 0x78], r12b
je 0x7ff698f72b67
cmp byte [rsp + 0x78], r12b
je 0x7ff698f72b67
movss xmm6, dword [rbp - 0x7c]
movss xmm10, dword [rsp + 0x74]
comiss xmm6, xmm10
jbe 0x7ff698f721cf
movaps xmm0, xmm6
subss xmm0, xmm10
jmp 0x7ff698f721d7
movaps xmm0, xmm10
subss xmm0, xmm6
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x7ff699015740]
mulsd xmm0, qword [0x7ff699015748]
call qword [sym.imp.ucrtbase.dll_round]
xorps xmm11, xmm11
cvtsd2ss xmm11, xmm0
comiss xmm6, xmm10
jbe 0x7ff698f72206
subss xmm6, xmm10
jmp 0x7ff698f72211
movaps xmm1, xmm10
subss xmm1, xmm6
movaps xmm6, xmm1
mulss xmm6, dword [0x7ff699015760]
movaps xmm0, xmm6
call sub.ucrtbase.dll_roundf
movaps xmm13, xmm0
movss xmm14, dword [rsp + 0x70]
movaps xmm8, xmm14
subss xmm8, xmm11
movaps xmm9, xmm10
subss xmm9, xmm13
addss xmm11, xmm11
movaps xmm12, xmm0
addss xmm12, xmm13
cmp byte [0x7ff69905629f], r12b
je 0x7ff698f72433
mov eax, dword [0x7ff6990562f8]
cmp eax, 1
jne 0x7ff698f72326
mov dword [rsp + 0x60], 0x40500000
movaps xmm1, xmmword [0x7ff699015a50]
movups xmmword [rsp + 0x40], xmm1
movaps xmm7, xmm11
addss xmm7, xmm8
movss dword [rsp + 0x68], xmm7
movaps xmm6, xmm12
addss xmm6, xmm9
movss dword [rsp + 0x6c], xmm6
movss dword [rsp + 0x70], xmm8
movss dword [rsp + 0x74], xmm9
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x70]
lea rcx, [0x7ff6990563a0]
call fcn.7ff698f73450
mov dword [rsp + 0x60], 0x3fa00000
movaps xmm1, xmmword [0x7ff699015b10]
movups xmmword [rsp + 0x40], xmm1
movss dword [rsp + 0x70], xmm7
movss dword [rsp + 0x74], xmm6
movss dword [rsp + 0x68], xmm8
movss dword [rsp + 0x6c], xmm9
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
lea rcx, [0x7ff6990563a0]
call fcn.7ff698f73450
mov eax, dword [0x7ff6990562f8]
cmp eax, 2
jne 0x7ff698f72365
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm11
movaps xmm2, xmm9
movaps xmm1, xmm8
mov cl, 1
call fcn.7ff698f71020
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm11
movaps xmm2, xmm9
movaps xmm1, xmm8
xor ecx, ecx
call fcn.7ff698f71020
mov eax, dword [0x7ff6990562f8]
test eax, eax
jne 0x7ff698f72380
mov byte [rsp + 0x20], r12b
xor r9d, r9d
lea r8d, [rax + 0x64]
mov rdx, rsi
mov rcx, rbx
call fcn.7ff698f70930
cmp byte [0x7ff6990562bf], r12b
je 0x7ff698f723dc
movaps xmm0, xmmword [0x7ff699015a30]
movups xmmword [rsp + 0x40], xmm0
movaps xmm1, xmm11
addss xmm1, xmm8
movss dword [rsp + 0x70], xmm1
movaps xmm0, xmm12
addss xmm0, xmm9
movss dword [rsp + 0x74], xmm0
movss dword [rsp + 0x68], xmm8
movss dword [rsp + 0x6c], xmm9
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
lea rcx, [0x7ff6990563a0]
call fcn.7ff698f73350
cmp byte [0x7ff6990562f7], r12b
jne 0x7ff698f723ee
cmp byte [0x7ff6990562f5], r12b
je 0x7ff698f72405
movss dword [rsp + 0x20], xmm12
movaps xmm2, xmm9
movaps xmm1, xmm8
mov ecx, r15d
call fcn.7ff698f71950
cmp byte [0x7ff6990562be], r12b
jne 0x7ff698f72417
cmp byte [0x7ff6990562e4], r12b
je 0x7ff698f72433
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm11
movaps xmm2, xmm9
movaps xmm1, xmm8
mov rcx, qword [rbp - 8]
call fcn.7ff698f71ca0
mov rbx, 0xffffffffffffffff
cmp byte [0x7ff6990562f6], r12b
je 0x7ff698f724e0
movaps xmm7, xmmword [0x7ff699015b10]
movaps xmm6, xmm10
subss xmm6, xmm13
subss xmm6, dword [0x7ff6990157a8]
lea rdx, [rbp]
cmp qword [rbp + 0x18], 0xf
cmova rdx, qword [rbp]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
mov r8, rbx
nop
inc r8
cmp byte [rdx + r8], r12b
jne 0x7ff698f72480
lea rcx, [rbp - 0x70]
call fcn.7ff698f3fda0
nop
mov rax, qword [0x7ff699056200]
movdqa xmmword [rsp + 0x40], xmm7
mov byte [rsp + 0x28], 1
movss xmm0, dword [0x7ff699015798]
movss dword [rsp + 0x20], xmm0
lea r9, [rsp + 0x40]
movss xmm1, dword [rbp - 0x80]
unpcklps xmm1, xmm6
movq r8, xmm1
lea rdx, [rbp - 0x70]
mov rcx, qword [rax + 0x48]
call fcn.7ff698f71350
nop
lea rcx, [rbp - 0x70]
call fcn.7ff698f3d390
mov rdi, qword [rbp - 0x38]
cmp byte [0x7ff6990562e6], 0
je 0x7ff698f72577
movaps xmm0, xmmword [0x7ff699015b10]
movss dword [rsp + 0x70], xmm14
movss dword [rsp + 0x74], xmm10
movups xmmword [rbp - 0x80], xmm0
cmp dword [0x7ff6990562fc], 0
jne 0x7ff698f7252c
lea rdx, [rsp + 0x60]
call fcn.7ff698f80670
movss xmm6, dword [rax + 4]
xorps xmm6, xmmword [0x7ff699015b70]
lea rdx, [rsp + 0x40]
jmp 0x7ff698f72540
lea rdx, [rsp + 0x40]
call fcn.7ff698f80670
movss xmm6, dword [rax + 4]
lea rdx, [rsp + 0x60]
call fcn.7ff698f80670
movss xmm0, dword [rax]
mulss xmm0, dword [0x7ff6990156f0]
movss dword [rsp + 0x68], xmm0
movss dword [rsp + 0x6c], xmm6
lea r9, [rbp - 0x80]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
lea rcx, [0x7ff6990563a0]
call fcn.7ff698f73250
cmp byte [0x7ff69905629e], 0
je 0x7ff698f72b67
lea r14, [0x7ff699014880]
lea rsi, [0x7ff699014800]
cmp dword [0x7ff6990562d0], 0
jne 0x7ff698f72a6f
mov ecx, dword [0x7ff6990562a8]
test ecx, ecx
je 0x7ff698f728a0
sub ecx, 1
je 0x7ff698f7281a
sub ecx, 1
je 0x7ff698f7264a
cmp ecx, 1
jne 0x7ff698f72b67
movsd xmm0, qword [0x7ff6990147e8]
movsd qword [rsp + 0x40], xmm0
movzx ecx, word [0x7ff6990147f0]
mov word [rsp + 0x48], cx
movzx eax, byte [0x7ff6990147f2]
mov byte [rsp + 0x40], 0x4c
xor byte [rsp + 0x41], 0x3a
xor byte [rsp + 0x42], 0x3b
xor byte [rsp + 0x43], 0x3c
xor byte [rsp + 0x44], 0x3d
xor byte [rsp + 0x45], 0x3e
xor byte [rsp + 0x46], 0x3f
xor byte [rsp + 0x47], 0x40
xor cl, 0x41
mov byte [rsp + 0x48], cl
xor byte [rsp + 0x49], 0x42
xor al, 0x43
mov byte [rsp + 0x4a], al
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
lea rax, [rsp + 0x40]
inc rbx
cmp byte [rax + rbx], 0
jne 0x7ff698f72637
lea rdx, [rsp + 0x40]
jmp 0x7ff698f728ee
movups xmm0, xmmword [0x7ff6990147d0]
movups xmmword [rsp + 0x40], xmm0
movzx eax, byte [0x7ff6990147e0]
mov byte [rsp + 0x50], al
mov r8d, r12d
cmp dword [0x7ff69902b0d0], 2
jl 0x7ff698f727ad
movdqa xmm5, xmmword [0x7ff6990158f0]
movdqa xmm4, xmmword [0x7ff699015b80]
movdqa xmm6, xmmword [0x7ff699015930]
movdqa xmm0, xmmword [0x7ff699015a20]
movdqa xmmword [rbp - 0x80], xmm0
lea rcx, [rsp + 0x40]
mov edx, dword [rbp - 0x80]
nop
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x7ff699015a00]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
lea eax, [r8 + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x7ff699015a00]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx + 4]
xorps xmm2, xmm0
movd dword [rcx + 4], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x10
jl 0x7ff698f726a0
cmp r8d, 0x11
jge 0x7ff698f727f3
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
nop dword [rax + rax]
mov eax, 0xa0a0a0a1
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x11
jl 0x7ff698f727c0
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
lea rax, [rsp + 0x40]
inc rbx
cmp byte [rax + rbx], 0
jne 0x7ff698f72807
lea rdx, [rsp + 0x40]
jmp 0x7ff698f728ee
movsd xmm0, qword [0x7ff699014778]
movsd qword [rsp + 0x40], xmm0
movzx ecx, word [0x7ff699014780]
mov word [rsp + 0x48], cx
movzx eax, byte [0x7ff699014782]
mov byte [rsp + 0x40], 0x55
xor byte [rsp + 0x41], 0x3a
xor byte [rsp + 0x42], 0x3b
xor byte [rsp + 0x43], 0x3c
xor byte [rsp + 0x44], 0x3d
xor byte [rsp + 0x45], 0x3e
xor byte [rsp + 0x46], 0x3f
xor byte [rsp + 0x47], 0x40
xor cl, 0x41
mov byte [rsp + 0x48], cl
xor byte [rsp + 0x49], 0x42
xor al, 0x43
mov byte [rsp + 0x4a], al
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
lea rax, [rsp + 0x40]
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x7ff698f72890
lea rdx, [rsp + 0x40]
jmp 0x7ff698f728ee
mov eax, dword [0x7ff69901478c]
mov dword [rsp + 0x60], eax
movzx eax, byte [0x7ff699014790]
mov byte [rsp + 0x60], 0x48
xor byte [rsp + 0x61], 0x3a
xor byte [rsp + 0x62], 0x3b
xor byte [rsp + 0x63], 0x3c
xor al, 0x3d
mov byte [rsp + 0x64], al
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
lea rax, [rsp + 0x60]
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x7ff698f728e0
lea rdx, [rsp + 0x60]
mov r8, rbx
lea rcx, [rbp - 0x70]
call fcn.7ff698f3fda0
lea r8, [rbp - 0x70]
mov rdx, rdi
call fcn.7ff698f801c0
test rax, rax
je 0x7ff698f72b67
lea rdx, [rax + 0x158]
call fcn.7ff698f80a30
mov rdi, rax
test rax, rax
je 0x7ff698f72b67
lea r8, [rax + 0x150]
lea rdx, [rbp - 0x80]
call fcn.7ff698f80ae0
movss xmm7, dword [0x7ff699015724]
movaps xmm0, xmm7
divss xmm0, dword [0x7ff69902d314]
movaps xmm8, xmm0
mulss xmm8, dword [rbp - 0x78]
movss xmm6, dword [rbp - 0x80]
mulss xmm6, xmm0
lea r8, [rdi + 0x150]
lea rdx, [rbp - 0x80]
call fcn.7ff698f80ae0
divss xmm7, dword [0x7ff69902d31c]
mulss xmm7, dword [rbp - 0x7c]
lea r8, [rdi + 0x144]
lea rdx, [rbp - 0x80]
call fcn.7ff698f80ae0
addss xmm8, dword [rbp - 0x78]
movss xmm1, dword [rbp - 0x7c]
addss xmm1, xmm7
movss xmm0, dword [rbp - 0x80]
addss xmm0, xmm6
movss dword [rbp - 0x80], xmm0
movss dword [rbp - 0x7c], xmm1
movss dword [rbp - 0x78], xmm8
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x70]
call fcn.7ff698f80740
movaps xmm7, xmmword [0x7ff699015b10]
movss xmm6, dword [rsp + 0x74]
mov ecx, 0x28
call fcn.7ff698fe9c9c
mov rbx, rax
mov qword [rsp + 0x40], rax
mov qword [rax], r14
movss xmm0, dword [rsp + 0x70]
unpcklps xmm0, xmm6
movsd qword [rax + 8], xmm0
mov dword [rax + 0x10], 0x40400000
movups xmmword [rax + 0x14], xmm7
mov byte [rax + 0x24], 1
mov qword [rsp + 0x70], rax
mov rdi, qword [0x7ff6990563a8]
cmp rdi, qword [0x7ff6990563b0]
je 0x7ff698f72a5b
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov qword [rsp + 0x40], rax
mov ecx, 0x18
call fcn.7ff698fe9c9c
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], rsi
mov qword [rax + 0x10], rbx
mov qword [rdi], rbx
mov qword [rdi + 8], rax
add qword [0x7ff6990563a8], 0x10
jmp 0x7ff698f72a6f
lea r8, [rsp + 0x70]
mov rdx, rdi
lea rcx, [0x7ff6990563a0]
call fcn.7ff698f74250
cmp byte [0x7ff69905629e], 0
je 0x7ff698f72b67
cmp dword [0x7ff6990562d0], 1
jne 0x7ff698f72b67
cmp byte [0x7ff699056286], 1
jne 0x7ff698f72b67
movss xmm8, dword [0x7ff6990562d8]
ucomiss xmm8, xmm15
jp 0x7ff698f72aab
je 0x7ff698f72b67
movss xmm7, dword [0x7ff6990562dc]
ucomiss xmm7, xmm15
jp 0x7ff698f72abf
je 0x7ff698f72b67
movaps xmm6, xmmword [0x7ff699015b10]
mov ecx, 0x28
call fcn.7ff698fe9c9c
mov rbx, rax
mov qword [rsp + 0x40], rax
mov qword [rax], r14
movaps xmm0, xmm8
unpcklps xmm0, xmm7
movsd qword [rax + 8], xmm0
mov dword [rax + 0x10], 0x40400000
movups xmmword [rax + 0x14], xmm6
mov byte [rax + 0x24], 1
mov qword [rsp + 0x70], rax
mov rdi, qword [0x7ff6990563a8]
cmp rdi, qword [0x7ff6990563b0]
je 0x7ff698f72b52
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov qword [rsp + 0x40], rax
mov ecx, 0x18
call fcn.7ff698fe9c9c
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], rsi
mov qword [rax + 0x10], rbx
mov qword [rdi], rbx
mov qword [rdi + 8], rax
add qword [0x7ff6990563a8], 0x10
jmp 0x7ff698f72b67
lea r8, [rsp + 0x70]
mov rdx, rdi
lea rcx, [0x7ff6990563a0]
call fcn.7ff698f74250
nop
lea rcx, [rbp]
call fcn.7ff698f3d390
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.7ff698fe98c0
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
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 r12
pop rdi
pop rbp
ret