Function at 0x1800078c0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x128
mov rsi, rcx
mov qword [rsp + 0xa8], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xb8], 0x754c26
mov rax, qword [rsp + 0xb8]
xor rax, 0xe
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x98], 0xe
mov qword [rsp + 0x38], 0x50
mov qword [rsp + 0x58], 1
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x38]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
sub rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180007983
cqo
idiv rcx
jmp 0x180007987
xor edx, edx
div ecx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsi]
mov rax, qword [0x18002a088]
movabs rdi, 0x20a163ccac322131
mov rdx, rdi
xchg qword [rsp + 0x70], rdx
xchg qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x70]
xor qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0xb8]
lea rdx, [rsp + 0xa8]
xor r8d, r8d
xor r9d, r9d
call rax
mov ecx, eax
mov qword [rsp + 0xb8], 0x754c3f
mov rax, qword [rsp + 0xb8]
xor rax, 0xe
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x98], 0xe
mov qword [rsp + 0x38], 0x50
mov qword [rsp + 0x58], 1
mov rax, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x38]
lea rax, [rax + rdx + 1]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x58]
sub rax, rdx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x180007a5c
cqo
idiv r8
jmp 0x180007a61
xor edx, edx
div r8d
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
test ecx, ecx
js 0x1800082c2
mov qword [rsp + 0xb8], 0x754c4e
mov rax, qword [rsp + 0xb8]
xor rax, 0xe
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x98], 0xe
mov qword [rsp + 0x38], 0x50
mov qword [rsp + 0x58], 1
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x38]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
sub rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180007af4
cqo
idiv rcx
jmp 0x180007af8
xor edx, edx
div ecx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0xa8]
lea rcx, [rsp + 0xb8]
call fcn.1800032e0
mov qword [rsp + 0x70], 0x754c42
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x38], 0xe
mov qword [rsp + 0x58], 0x50
mov qword [rsp + 0x50], 1
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x58]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x50]
sub rax, rcx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180007b92
cqo
idiv rcx
jmp 0x180007b96
xor edx, edx
div ecx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
cmp byte [0x18002ad8d], 1
jne 0x180007c11
xor r11d, r11d
cmp byte [0x18002ad87], 0
mov ecx, 0x32
mov r10d, 0
cmovne r10d, ecx
cmp byte [0x18002ad8b], 0
mov eax, 0x31
mov r8d, 0
cmovne r8d, eax
cmp byte [0x18002ad88], 0
cmove eax, r11d
cmp byte [0x18002ad89], 0
cmove ecx, r11d
cmp byte [0x18002ad8a], 0
mov edx, 0x38
cmove edx, r11d
cmp byte [0x18002ad8c], 0
mov r9d, 0x34
cmove r9d, r11d
jmp 0x180007c63
mov byte [0x18002ad87], 1
mov byte [0x18002ad88], 1
mov byte [0x18002ad89], 1
mov byte [0x18002ad8a], 1
mov byte [0x18002ad8b], 1
mov byte [0x18002ad8c], 1
mov byte [0x18002ad8d], 1
mov eax, 0x31
mov ecx, 0x32
mov edx, 0x38
mov r9d, 0x34
mov r8d, 0x31
mov r10d, 0x32
mov ebx, r10d
imul ebx, r8d
add ebx, eax
shl rbx, 0x38
mov r11d, r8d
imul r11d, eax
add r11d, r10d
shl r11, 0x30
mov r14d, r8d
imul r14d, ecx
add r14d, edx
shl r14, 0x28
imul r8d, edx
add r8d, ecx
shl r8, 0x20
or r8, r14
mov r14d, r10d
imul r14d, r9d
add r14d, eax
shl r14, 0x18
or r14, rbx
imul eax, r9d
add eax, r10d
shl eax, 0x10
or rax, r8
mov r8d, ecx
imul r8d, r9d
add r8d, edx
shl r8d, 8
imul edx, r9d
add edx, ecx
or edx, r8d
or rdx, r11
or rdx, rax
or rdx, r14
mov qword [rsp + 0x70], rdx
lea rdx, [rsp + 0x78]
mov rax, qword [rsp + 0x70]
movabs rcx, 0x72005000730050
xor rcx, rax
mov qword [rsp + 0x78], rcx
mov rax, qword [rsp + 0x70]
movabs rcx, 0x7300650063006f
xor rcx, rax
mov qword [rsp + 0x80], rcx
mov rax, qword [rsp + 0x70]
movabs rcx, 0x70007900540073
xor rcx, rax
mov qword [rsp + 0x88], rcx
mov rax, qword [rsp + 0x70]
xor rax, 0x65
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 4
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x180007d7a
xor eax, eax
nop dword [rax]
mov rcx, qword [rsp + 0x70]
xor qword [rsp + rax*8 + 0x78], rcx
inc rax
mov rcx, qword [rsp + 0x98]
cmp rax, rcx
jb 0x180007d60
mov rax, qword [0x18002a1e0]
mov rcx, rdi
xchg qword [rsp + 0x38], rcx
xchg qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
lea rcx, [rsp + 0x98]
xor r8d, r8d
xor r9d, r9d
call rax
mov qword [rsp + 0x70], 0x754c5b
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180007e2b
cqo
idiv rcx
jmp 0x180007e2f
xor edx, edx
div ecx
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov rax, qword [0x18002a268]
mov rcx, rdi
xchg qword [rsp + 0x38], rcx
xchg qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x98]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call rax
mov rcx, rax
mov qword [rsp + 0x70], 0x754c50
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
lea rax, [rax + rdx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
sub rax, rdx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x180007ee6
cqo
idiv r8
jmp 0x180007eeb
xor edx, edx
div r8d
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov rax, qword [rcx]
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [0x18002a210]
mov r8, rdi
xchg qword [rsp + 0x38], r8
xchg qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0x38]
xor qword [rsp + 0x70], rdx
mov r10, qword [rsp + 0x70]
lea rdx, [rsp + 0xb0]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
mov edx, 0x240
xor r8d, r8d
mov r9d, 0x400
call r10
test eax, eax
js 0x1800080e3
mov qword [rsp + 0x70], 0x754c8c
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180007fcb
cqo
idiv rcx
jmp 0x180007fcf
xor edx, edx
div ecx
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsi + 8]
mov rcx, qword [rsp + 0xb0]
mov rax, qword [0x18002a108]
mov r8, rdi
xchg qword [rsp + 0x38], r8
xchg qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
lea r8, [rsp + 0xe8]
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], 0x30
lea r9, [rsp + 0xf0]
xor r8d, r8d
call rax
mov qword [rsp + 0x70], 0x754c85
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1800080a0
cqo
idiv rcx
jmp 0x1800080a4
xor edx, edx
div ecx
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xb0]
mov rax, qword [0x18002a090]
mov rdx, rdi
xchg qword [rsp + 0x38], rdx
xchg qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call rax
mov qword [rsp + 0x70], 0x754c94
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180008158
cqo
idiv rcx
jmp 0x18000815c
xor edx, edx
div ecx
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
lea rcx, [rsp + 0xb8]
call fcn.180003550
mov qword [rsp + 0x70], 0x754cad
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1800081e8
cqo
idiv rcx
jmp 0x1800081ec
xor edx, edx
div ecx
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xa8]
mov rax, qword [0x18002a178]
xchg qword [rsp + 0x38], rdi
xchg qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call rax
mov qword [rsp + 0x70], 0x754ca1
mov rax, qword [rsp + 0x70]
xor rax, 0xe
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], 0xe
mov qword [rsp + 0x50], 0x50
mov qword [rsp + 0x48], 1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x18000829d
cqo
idiv rcx
jmp 0x1800082a1
xor edx, edx
div ecx
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsi + 0x10]
lea rdx, [rsp + 0xf0]
mov r8d, 0x30
call fcn.1800039d0
mov qword [rsp + 0xb8], 0x754cb0
mov rax, qword [rsp + 0xb8]
xor rax, 0xe
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x98], 0xe
mov qword [rsp + 0x38], 0x50
mov qword [rsp + 0x58], 1
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x38]
lea rax, [rax + rcx + 1]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
sub rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180008343
cqo
idiv rcx
jmp 0x180008347
xor edx, edx
div ecx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r14
ret