Function at 0x140415d30
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x598
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x500], xmm6
mov qword [rbp + 0x4f8], 0xfffffffffffffffe
mov qword [rbp + 0x4f0], rcx
mov qword [rcx], 0
mov r14, qword [0x14066c260]
mov eax, 0x90074a4b
mov ecx, 0x65e450e9
lea rdx, [fcn.140415d30]
lea r8d, [rdx + rdx]
add r8d, 0x3400
nop
mov r9d, dword [0x140696bfc]
mov r10d, dword [0x14066c9f0]
add r10d, eax
cmp r9d, r10d
jge 0x140415e06
mov r9d, dword [0x140696bfc]
cmp r9d, 0x19
jg 0x140415e06
jmp 0x140415e48
mov r9d, dword [0x14066c9f0]
mov r10d, r9d
xor r10d, 0x66de3a57
and r9d, 0x66de3a57
lea r9d, [r10 + r9*2]
add r9d, 0x29290fad
lea r10d, [rdx + rdx]
add r10d, 0x3580
mov r11d, r10d
xor r11d, r9d
not r9d
not r10d
and r10d, r9d
or r10d, r11d
cmp r10d, 0xffffffff
jne 0x140415dc0
mov r9d, dword [0x14066c9f0]
add r9d, ecx
mov r10d, r9d
xor r10d, 0x2a22f91b
and r9d, 0x2a22f91b
lea r9d, [r10 + r9*2]
mov r10d, r8d
xor r10d, r9d
not r10d
test r10d, r9d
jne 0x140415dc0
cmp dword [0x14066c9f0], 0x6ff8b5fd
jne 0x140415d90
jmp 0x140415da6
movsxd r15, dword [r14]
mov ebx, dword [0x140557694]
mov ecx, 0x1c0
call fcn.1404e9d4c
mov rsi, rax
mov r8d, 0x1c0
mov rcx, rax
xor edx, edx
call fcn.140512320
movabs rax, 0x7ffffffffffffffe
mov qword [rsi], rax
mov qword [rbp + 0x4e8], rsi
add rsi, 8
mov rcx, rsi
call fcn.14041d560
mov rcx, qword [rbp + 0x4e8]
mov dword [rcx + 0x1b8], 0
mov rax, qword [rbp + 0x4f0]
mov rsi, qword [rax]
mov qword [rax], rcx
test rsi, rsi
je 0x140415f80
lea rdi, [rsi + 8]
lea rcx, [rsi + 0x1a0]
mov eax, 0xee2b59af
sub eax, dword [0x14066c4b0]
mov edx, eax
xor edx, 0x11d451ff
and eax, 0x11d451ff
lea eax, [rdx + rax*2]
neg eax
cdqe
add rax, qword [0x14066c4d8]
call qword [0x1405fc400]
lea rcx, [rsi + 0x188]
mov eax, 0x4082c1c
sub eax, dword [0x14066c4a0]
mov edx, eax
xor edx, 0xfbf77f92
and eax, 0x7bf77f92
lea eax, [rdx + rax*2]
neg eax
cdqe
add rax, qword [0x14066c4f0]
call qword [0x1405fc400]
lea rcx, [rsi + 0x78]
mov r12d, 0x5452
mov eax, dword [0x14066c4a8]
add eax, r12d
cdqe
add rax, qword [0x14066c4e8]
call qword [0x1405fc400]
add r12d, dword [0x14066c4a4]
movsxd rax, r12d
add rax, qword [0x14066c4e0]
mov rcx, rdi
call qword [0x1405fc400]
mov eax, dword [0x14066c4ac]
mov ecx, dword [0x14066c9f0]
add eax, ecx
add eax, 0x90079e55
cdqe
add rax, qword [0x14066c4c8]
mov rcx, rsi
call qword [0x1405fc400]
lea rcx, [rbp + 0x240]
call fcn.140416df0
mov rax, r15
not rax
xor r15, r14
not r14
and r14, rax
or r14, r15
not r14
lea rax, [r15 + r14*2]
mov ecx, dword [0x140696bfc]
cmp ecx, 0x3a
mov r10, qword [rbp + 0x4f0]
jle 0x140415fb9
jmp 0x140415ff5
xor ecx, ecx
xor edx, edx
sub rdx, qword [0x140696c00]
sub rcx, qword [rbp + 0x240]
mov r8, qword [r10]
xor rdx, rcx
mov r9, rdx
not r9
and r9, rcx
lea rcx, [rdx + r9*2]
neg rcx
mov qword [r8], rcx
mov ecx, dword [0x140696bf8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140416001
mov rcx, qword [r10]
mov qword [rcx], 0
jmp 0x140415fb9
mov ecx, dword [0x14066c250]
mov edx, dword [0x14066c9f0]
add edx, ecx
add edx, 0x90074a04
mov dword [0x14066c250], edx
and edx, ecx
mov dword [rbp + 0x4e8], edx
je 0x14041602d
xor r12d, r12d
jmp 0x1404168d7
mov ecx, dword [0x140696bfc]
cmp ecx, 0x3c
jle 0x140416840
jmp 0x14041684b
mov byte [rbp + 0x1e0], 0
mov qword [rbp + 0x1e8], 0
xorps xmm0, xmm0
movaps xmmword [rbp + 0x480], xmm0
mov qword [rbp + 0x490], 0
movaps xmmword [rbp + 0x4a0], xmm0
mov qword [rbp + 0x4b0], 0
lea rcx, [rbp + 0xc0]
call fcn.140469b50
mov eax, 0x5452
add eax, dword [0x14066c4b4]
cdqe
add rax, qword [0x14066c4c0]
lea rcx, [rbp + 0x3f0]
lea rsi, [rbp + 0xc0]
mov rdx, rsi
call qword [0x1405fc400]
mov eax, dword [0x14066c4a4]
mov ecx, dword [0x14066c9f0]
add eax, ecx
add eax, 0x90079e55
cdqe
add rax, qword [0x14066c4e0]
mov rcx, rsi
call qword [0x1405fc400]
lea rcx, [rbp - 0x50]
call fcn.14046cf00
mov edi, 0x5452
mov eax, dword [0x14066c4b8]
add eax, edi
cdqe
add rax, qword [0x14066c4f8]
lea rcx, [rbp + 0x130]
lea rsi, [rbp - 0x50]
mov rdx, rsi
call qword [0x1405fc400]
add edi, dword [0x14066c4a8]
movsxd rax, edi
add rax, qword [0x14066c4e8]
mov rcx, rsi
call qword [0x1405fc400]
mov r10d, dword [rbp + 0x4e4]
mov eax, dword [0x140696bfc]
cmp eax, 0xf
jle 0x14041613b
movzx eax, word [0x140557698]
movzx ecx, word [0x140557698]
cmp dword [rbp + 0x4e8], 1
mov ax, 0x90b1
sbb ax, 0xffff
mov edx, dword [0x140696bfc]
cmp edx, 0x34
nop word [rax + rax]
mov edx, 0x90074a03
add edx, dword [0x14066c9f0]
lea r8, [fcn.140415d30]
add r8d, r8d
add r8d, 0x2340
mov r9d, r8d
not r9d
and r9d, r8d
cmp r9d, edx
jne 0x140416160
add eax, 0x6f4e
sub ecx, r10d
xor eax, ecx
not eax
and eax, ecx
mov ecx, dword [0x140696bf8]
lea r8d, [rcx - 1]
imul r8d, ecx
movzx edx, ax
test r8b, 1
jne 0x1404161f8
jmp 0x1404161b1
add dword [0x140694264], edx
mov eax, 0x90074a03
add eax, dword [0x14066c9f0]
lea rcx, [fcn.140415d30]
lea r8d, [rcx + rcx]
add r8d, 0x2c01
add ecx, ecx
add ecx, 0x2c00
mov r9d, ecx
xor r9d, 0xfffffffe
xor r8d, r9d
and r9d, ecx
or r9d, r8d
not r9d
cmp r9d, eax
je 0x1404162b4
lea rax, [fcn.140415d30]
lea r8d, [rax + rax]
add r8d, 0x3800
mov r9d, r8d
not r9d
mov r11d, dword [0x14066c9f0]
mov eax, r11d
xor eax, 0x90074a03
mov ecx, r11d
and ecx, 0x10074a03
lea eax, [rax + rcx*2]
sub eax, r11d
lea r10d, [rax + rdx]
add r10d, 0x6ff8b5fd
add eax, edx
mov ecx, 0x90074a03
sub ecx, eax
imul ecx, r10d
mov eax, ecx
shl eax, cl
mov r10d, dword [0x140694264]
sub r11d, eax
lea eax, [rcx + r11]
add eax, 0x90074a03
add r11d, ecx
mov esi, 0x6ff8b5fd
sub esi, r11d
mov r11d, eax
shl r11d, cl
mov ecx, esi
xor ecx, r11d
and r11d, esi
lea ecx, [rcx + r11*2]
shl eax, cl
mov r11d, eax
sub r11d, ecx
imul r11d, ecx
sub eax, r11d
mov ecx, eax
shl r10d, cl
neg r10d
imul r10d, eax
sub r10d, eax
imul r10d, eax
sub r10d, eax
mov dword [0x140694264], r10d
test r9d, r8d
jne 0x140416210
jmp 0x1404161b1
lea rcx, [rbp + 0x460]
call fcn.14046d1d0
mov esi, 0x5452
mov eax, dword [0x14066c4a0]
add eax, esi
cdqe
add rax, qword [0x14066c4f0]
lea rcx, [rbp + 0x480]
call qword [0x1405fc400]
movaps xmm0, xmmword [rbp + 0x460]
movaps xmmword [rbp + 0x480], xmm0
mov rax, qword [rbp + 0x470]
mov qword [rbp + 0x490], rax
xorps xmm0, xmm0
movaps xmmword [rbp + 0x460], xmm0
add esi, dword [0x14066c4a0]
mov qword [rbp + 0x470], 0
movsxd rax, esi
add rax, qword [0x14066c4f0]
lea rcx, [rbp + 0x460]
call qword [0x1405fc400]
nop word cs:[rax + rax]
mov eax, dword [0x140696bfc]
cmp eax, 0x50
jle 0x140416375
mov ecx, dword [0x140696bf8]
mov r8d, dword [0x14066c9f0]
mov eax, ecx
sub eax, r8d
add eax, 0x6ff8b5fc
imul eax, ecx
add r8d, 0x90074a05
xor edx, edx
div r8d
test edx, edx
jmp 0x140416340
lea rcx, [rbp + 0x4c0]
call fcn.14046e0e0
mov eax, dword [0x140696bfc]
cmp eax, 0x25
jle 0x1404163fd
mov esi, 0x5452
mov eax, dword [0x14066c4b0]
add eax, esi
cdqe
add rax, qword [0x14066c4d8]
lea rcx, [rbp + 0x4a0]
call qword [0x1405fc400]
movaps xmm0, xmmword [rbp + 0x4c0]
movaps xmmword [rbp + 0x4a0], xmm0
mov rax, qword [rbp + 0x4d0]
mov qword [rbp + 0x4b0], rax
xorps xmm0, xmm0
movaps xmmword [rbp + 0x4c0], xmm0
add esi, dword [0x14066c4b0]
mov qword [rbp + 0x4d0], 0
movsxd rax, esi
add rax, qword [0x14066c4d8]
lea rcx, [rbp + 0x4c0]
call qword [0x1405fc400]
mov esi, 0x5452
mov eax, dword [0x14066c4b0]
add eax, esi
cdqe
add rax, qword [0x14066c4d8]
lea rcx, [rbp + 0x4a0]
call qword [0x1405fc400]
movaps xmm0, xmmword [rbp + 0x4c0]
movaps xmmword [rbp + 0x4a0], xmm0
mov rax, qword [rbp + 0x4d0]
mov qword [rbp + 0x4b0], rax
xorps xmm0, xmm0
movaps xmmword [rbp + 0x4c0], xmm0
add esi, dword [0x14066c4b0]
mov qword [rbp + 0x4d0], 0
movsxd rax, esi
add rax, qword [0x14066c4d8]
lea rcx, [rbp + 0x4c0]
call qword [0x1405fc400]
lea rax, [rbp + 0x4a0]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x240]
lea rdx, [rbp + 0x3f0]
lea r8, [rbp + 0x130]
lea r9, [rbp + 0x480]
call fcn.140418e60
mov esi, 0x5452
lea r14, [rbp + 0x4a0]
lea rax, [fcn.140415d30]
lea ebx, [rax + rax]
add ebx, 0x480
mov edi, ebx
not edi
mov r12, qword [rbp + 0x4f0]
nop word cs:[rax + rax]
mov eax, dword [0x14066c4b0]
add eax, esi
cdqe
add rax, qword [0x14066c4d8]
mov r15, r14
mov rcx, r14
call qword [0x1405fc400]
mov eax, dword [0x14066c4a0]
add eax, esi
cdqe
add rax, qword [0x14066c4f0]
lea rcx, [rbp + 0x480]
call qword [0x1405fc400]
mov eax, dword [0x14066c4a8]
mov ecx, dword [0x14066c9f0]
add eax, ecx
add eax, 0x90079e55
cdqe
add rax, qword [0x14066c4e8]
lea rcx, [rbp + 0x130]
call qword [0x1405fc400]
mov eax, dword [0x14066c4a4]
add eax, esi
cdqe
add rax, qword [0x14066c4e0]
lea rcx, [rbp + 0x3f0]
call qword [0x1405fc400]
mov r14, qword [r12]
lea r13, [r14 + 8]
mov eax, dword [0x14066c4b4]
add eax, esi
cdqe
add rax, qword [0x14066c4c0]
mov rcx, r13
lea rdx, [rbp + 0x240]
call qword [0x1405fc400]
lea rcx, [r14 + 0x78]
mov eax, dword [0x14066c4b8]
add eax, esi
cdqe
add rax, qword [0x14066c4f8]
lea rdx, [rbp + 0x2b0]
call qword [0x1405fc400]
test edi, ebx
je 0x140416697
mov eax, dword [0x14066c4b0]
mov ecx, dword [0x14066c9f0]
add eax, ecx
add eax, 0x90079e55
cdqe
add rax, qword [0x14066c4d8]
mov r14, r15
mov rcx, r15
call qword [0x1405fc400]
mov eax, dword [0x14066c4a0]
add eax, esi
cdqe
add rax, qword [0x14066c4f0]
lea rcx, [rbp + 0x480]
call qword [0x1405fc400]
mov eax, dword [0x14066c4a8]
add eax, esi
cdqe
add rax, qword [0x14066c4e8]
lea rcx, [rbp + 0x130]
call qword [0x1405fc400]
mov eax, dword [0x14066c4a4]
add eax, esi
cdqe
add rax, qword [0x14066c4e0]
lea rcx, [rbp + 0x3f0]
call qword [0x1405fc400]
mov r13, qword [r12]
lea rcx, [r13 + 8]
mov eax, 0x553e5913
sub eax, dword [0x14066c4b4]
mov edx, eax
xor edx, 0xaac1529b
and eax, 0x2ac1529b
add eax, eax
mov r8d, edx
xor r8d, eax
and eax, edx
lea eax, [r8 + rax*2]
neg eax
cdqe
add rax, qword [0x14066c4c0]
lea rdx, [rbp + 0x240]
call qword [0x1405fc400]
add r13, 0x78
mov eax, dword [0x14066c4b8]
add eax, esi
cdqe
add rax, qword [0x14066c4f8]
mov rcx, r13
lea rdx, [rbp + 0x2b0]
call qword [0x1405fc400]
jmp 0x1404164d0
lea r15, [rbp + 0x2b0]
lea rax, [rbp + 0x240]
cmp r13, rax
je 0x140416771
lea rcx, [r14 + 0x188]
mov eax, dword [0x14066c4a0]
sub eax, dword [0x14066c9f0]
add eax, 0x6ff90a4f
cdqe
add rax, qword [0x14066c4f0]
call qword [0x1405fc400]
mov rax, qword [rbp + 0x3c0]
mov qword [r14 + 0x188], rax
mov rax, qword [rbp + 0x3c8]
mov qword [r14 + 0x190], rax
mov rax, qword [rbp + 0x3d0]
mov qword [r14 + 0x198], rax
xorps xmm6, xmm6
movups xmmword [rbp + 0x3c0], xmm6
mov qword [rbp + 0x3d0], 0
mov eax, 0x5452
add eax, dword [0x14066c4b0]
lea rcx, [r14 + 0x1a0]
cdqe
add rax, qword [0x14066c4d8]
call qword [0x1405fc400]
mov rax, qword [rbp + 0x3d8]
mov qword [r14 + 0x1a0], rax
mov rax, qword [rbp + 0x3e0]
mov qword [r14 + 0x1a8], rax
mov rax, qword [rbp + 0x3e8]
mov qword [r14 + 0x1b0], rax
movups xmmword [rbp + 0x3d8], xmm6
mov qword [rbp + 0x3e8], 0
lea rcx, [rbp + 0x3d8]
mov esi, 0x5452
mov eax, dword [0x14066c4b0]
add eax, esi
cdqe
add rax, qword [0x14066c4d8]
call qword [0x1405fc400]
lea rcx, [rbp + 0x3c0]
mov eax, dword [0x14066c4a0]
add eax, esi
cdqe
add rax, qword [0x14066c4f0]
call qword [0x1405fc400]
mov eax, dword [0x14066c4a8]
add eax, esi
cdqe
add rax, qword [0x14066c4e8]
mov rcx, r15
call qword [0x1405fc400]
add esi, dword [0x14066c4a4]
movsxd rax, esi
add rax, qword [0x14066c4e0]
lea rcx, [rbp + 0x240]
call qword [0x1405fc400]
mov rax, qword [rbp + 0x4f0]
mov rdx, qword [rax]
add rdx, 8
lea rcx, [rbp + 0x240]
xor r8d, r8d
xor r9d, r9d
call fcn.14047a9d0
mov rax, qword [rbp + 0x4f0]
mov rdx, qword [rax]
mov ecx, dword [rbp + 0x240]
add ecx, dword [0x140694264]
mov dword [rdx + 0x1b8], ecx
movaps xmm6, xmmword [rbp + 0x500]
add rsp, 0x598
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, dword [0x140696bfc]
cmp ecx, 0x3e
jl 0x140416880
lea rcx, [fcn.140415d30]
add ecx, ecx
add ecx, 0x2ee0
nop word [rax + rax]
mov edx, dword [0x14066c9f0]
mov r8d, edx
xor r8d, 0x90074a04
and edx, 0x10074a04
lea edx, [r8 + rdx*2]
test ecx, edx
jne 0x140416860
jmp 0x140416840
mov ecx, 0x90074a04
nop word cs:[rax + rax]
mov edx, dword [0x140696bf8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1404168c7
mov edx, dword [0x140696bf8]
mov r8d, dword [0x14066c9f0]
add r8d, ecx
not r8d
add r8d, edx
dec r8d
imul r8d, edx
test r8b, 1
jmp 0x140416890
xor ecx, ecx
mov r12d, 0
test ebx, ebx
jg 0x14041696f
mov dword [rbp + 0x4e4], r12d
mov byte [rbp + 0x3f0], 0
mov qword [rbp + 0x408], 0
mov qword [rbp + 0x410], 0xf
mov byte [rbp + 0x3f8], 0
mov qword [rbp + 0x428], 0
mov qword [rbp + 0x430], 0xf
mov byte [rbp + 0x418], 0
mov byte [rbp + 0x438], 0
mov qword [rbp + 0x440], 0
mov word [rbp + 0x130], 0
mov word [rbp + 0x14b], 0
mov word [rbp + 0x167], 0
mov word [rbp + 0x179], 0
mov word [rbp + 0x193], 0
lea rcx, [rbp + 0x1a0]
call fcn.1404175b0
jmp 0x140416041
mov edx, 0x90074a04
lea r8, [fcn.140415d30]
add r8d, r8d
add r8d, 0x3840
mov r9d, 0x90074a1c
mov r10b, 1
xor r11d, r11d
jmp 0x1404169b0
or r12d, esi
add ecx, 2
mov r11d, r12d
cmp ecx, ebx
jge 0x1404168d7
nop word cs:[rax + rax]
mov esi, dword [0x140696bf8]
lea edi, [rsi - 1]
imul edi, esi
test dil, 1
jne 0x1404169b0
movsxd rsi, ecx
movzx esi, word [rax + rsi]
mov edi, dword [0x140696bf8]
lea r14d, [rdi - 1]
imul r14d, edi
test r14b, 1
jne 0x140416a00
mov edi, dword [0x140696bf8]
lea r14d, [rdi + 1]
imul r14d, edi
test r14b, 1
je 0x140416a07
nop word cs:[rax + rax]
test r10b, r10b
je 0x140416a00
jmp 0x1404169dd
mov r12d, r11d
not r12d
mov edi, dword [0x14066c9f8]
add edi, 0x40e2
xor edi, esi
nop dword [rax + rax]
mov r14d, dword [0x140696bf8]
lea r15d, [r14 - 1]
imul r15d, r14d
test r15b, 1
jne 0x140416a4a
mov r14d, dword [0x14066c9f0]
add r14d, edx
xor r14d, r8d
not r14d
test r14d, r8d
je 0x140416a62
mov r14d, dword [0x140696bfc]
mov r15d, dword [0x14066c9f0]
add r15d, r9d
cmp r14d, r15d
jge 0x140416a20
jmp 0x140416a35
and r12d, esi
mov esi, r11d
not esi
xor r11d, esi
and r11d, edi
xor r11d, esi
xor esi, r11d
and esi, r11d
nop dword [rax]
mov r11d, dword [0x140696bfc]
cmp r11d, 0x1a
jle 0x140416993
cmp dword [0x14066c9f0], 0x6ff8b5fd
jmp 0x140416a80