Function at 0x1402ad2a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xa0], 0xfffffffffffffffe
mov rsi, r9
mov qword [rbp + 0x98], r8
mov r12, rdx
mov r15, qword [rbp + 0x128]
mov r14, qword [rbp + 0x118]
mov r13, qword [rbp + 0x110]
and ecx, 0xf
cmp ecx, 4
jae 0x1402ad33d
cmp ecx, 2
jae 0x1402ad504
test ecx, ecx
je 0x1402ad80c
test r15, r15
js 0x1402add6c
nop
mov rdi, qword [r13 + 0x18]
mov rax, rdi
shr rax, 1
movabs rbx, 0x7fffffffffffffff
mov rcx, rax
xor rcx, rbx
cmp rcx, rdi
jae 0x1402ad89e
movabs rcx, 0x8000000000000000
jmp 0x1402ad8cd
cmp ecx, 5
jbe 0x1402ad55c
cmp ecx, 6
jne 0x1402ad6c8
test r15d, r15d
nop
mov r9, qword [rbp + 0x98]
je 0x1402ad3a0
lea rax, [0x1405e9b20]
mov qword [r9], rax
lea rax, [0x1405e9b28]
mov qword [r9 + 0x10], rax
mov qword [r9 + 0xa0], 0
xorps xmm0, xmm0
movups xmmword [r9 + 0xc8], xmm0
mov qword [r9 + 0xd8], 0
lea rax, [0x1405e89f8]
mov qword [r9 + 0x98], rax
nop
mov rax, qword [r9]
movsxd rax, dword [rax + 4]
lea rsi, [0x1405e9b18]
mov qword [r9 + rax], rsi
mov rax, qword [r9]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x98]
mov dword [r9 + rax - 4], ecx
lea rdx, [r9 + 0x18]
mov rax, qword [r9]
movsxd rax, dword [rax + 4]
lea rcx, [0x1405e8a20]
mov qword [r9 + rax], rcx
mov rax, qword [r9]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x18]
mov dword [r9 + rax - 4], ecx
mov qword [r9 + 8], 0
mov rax, qword [r9]
movsxd rcx, dword [rax + 4]
add rcx, r9
xor r8d, r8d
mov rdi, r9
call fcn.1402a93f0
nop
mov rax, qword [rdi + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x1405e9dc8]
mov qword [rdi + rax + 0x10], rcx
mov rax, qword [rdi + 0x10]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x10]
mov dword [rdi + rax + 0xc], ecx
mov rax, qword [rdi]
movsxd rax, dword [rax + 4]
lea rcx, [0x1405e9d80]
mov qword [rdi + rax], rcx
mov rax, qword [rdi]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x20]
mov dword [rdi + rax - 4], ecx
mov rax, qword [rdi]
movsxd rax, dword [rax + 4]
mov qword [rdi + rax], rsi
mov rax, qword [rdi]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0x98]
mov dword [rdi + rax - 4], ecx
lea rax, [0x1405e8c48]
mov qword [rdi + 0x18], rax
mov ecx, 0x10
call fcn.1400954c0
mov rsi, rax
call fcn.140095660
nop
mov qword [rsi + 8], rax
mov rcx, qword [rbp + 0x98]
mov qword [rcx + 0x78], rsi
lea rax, [rcx + 0x20]
mov qword [rcx + 0x30], rax
lea rax, [rcx + 0x28]
mov qword [rcx + 0x38], rax
lea rax, [rcx + 0x40]
mov qword [rcx + 0x50], rax
lea rax, [rcx + 0x48]
mov qword [rcx + 0x58], rax
lea rax, [rcx + 0x60]
mov qword [rcx + 0x68], rax
lea rax, [rcx + 0x64]
mov qword [rcx + 0x70], rax
mov qword [rcx + 0x60], 0
xorps xmm0, xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x40], xmm0
lea rax, [0x1405e9c88]
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x80], 0
mov dword [rcx + 0x88], 0
nop
mov qword [rbp + 0x98], rcx
jmp 0x1402add0c
cmp ecx, 3
jne 0x1402ad715
nop
mov rdi, qword [rbp + 0x98]
test rdi, rdi
je 0x1402add00
nop
cmp qword [rdi], 0
jne 0x1402add00
mov ecx, 0x30
call fcn.1400954c0
mov qword [rbp + 0x90], rax
mov rax, qword [rsi + 8]
test rax, rax
je 0x1402adc92
nop
mov rcx, qword [rax + 0x28]
add rax, 0x30
test rcx, rcx
cmovne rax, rcx
jmp 0x1402adc99
cmp ecx, 4
jne 0x1402ad765
nop
mov rdi, qword [r13 + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, rdi
xor rax, r15
cmp rax, r14
jb 0x1402add71
add r14, rdi
mov r8, qword [r13 + 0x18]
movabs rcx, 0x8000000000000000
nop
mov qword [rbp + 0x68], r8
js 0x1402ad5dc
mov rax, r8
shr rax, 1
mov rdx, rax
xor rdx, r15
cmp rdx, r8
jb 0x1402ad5dc
mov rcx, r14
or rcx, 0xf
add rax, qword [rbp + 0x68]
cmp rcx, rax
mov r15, rax
cmova r15, rcx
lea rcx, [r15 + 1]
cmp rcx, 0x1000
jb 0x1402ada3e
cmp rcx, 0xffffffffffffffd9
jae 0x1402adf07
add rcx, 0x27
call fcn.1400954c0
lea rdx, [rax + 0x27]
and rdx, 0xffffffffffffffe0
mov rcx, rdx
mov qword [rbp + 0x90], rdx
mov qword [rdx - 8], rax
nop
mov qword [r13 + 0x10], r14
mov qword [r13 + 0x18], r15
mov rbx, qword [rbp + 0x68]
cmp rbx, 0x10
jb 0x1402ad926
nop
mov r14, qword [r13]
mov qword [rsp + 0x28], r14
mov r13, qword [rbp + 0x98]
mov rdx, r13
mov r15, qword [rbp + 0x90]
mov r8, r15
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
add r15, r13
mov rax, qword [rbp + 0x120]
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov r8, r15
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
add r12, r13
sub rdi, r12
inc rdi
add r12, r14
add r15, rsi
mov qword [rsp + 0x28], r12
mov rdx, rdi
mov r8, r15
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
lea rdx, [rbx + 1]
cmp rdx, 0x1000
jb 0x1402ad6ad
nop
mov rax, qword [r14 - 8]
add r14, 0xfffffffffffffff8
sub r14, rax
cmp r14, 0x20
jae 0x1402adfd1
add rbx, 0x28
mov rdx, rbx
mov r14, rax
mov r13, qword [rbp + 0x110]
mov rbx, qword [rbp + 0x90]
mov rcx, r14
call fcn.140095520
jmp 0x1402ad994
nop
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
cmp dword [r14 + rax + 0x10], 0
jne 0x1402ad70e
nop
mov esi, dword [0x14073bb6c]
mov dword [0x14073bb68], 0x35f4d839
test byte [r14 + rax + 0x18], 2
je 0x1402ad70e
nop
mov rcx, qword [r14 + rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x68]
nop
call qword [0x140704440]
cmp eax, 0xffffffff
je 0x1402add27
xor eax, eax
jmp 0x1402add05
test r14, r14
lea rsi, [0x1405e824c]
cmovne rsi, r14
lea rdi, [r12 + 8]
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0xf
mov byte [r12 + 8], 0
mov rcx, rsi
call fcn.140095650
cmp rax, 0xf
jbe 0x1402ad8e7
mov rcx, rdi
mov rdx, rax
mov r9, rsi
call fcn.14008c3c0
jmp 0x1402ad90e
nop
mov eax, dword [0x14073bb5c]
xor rax, 0x180f16c5
mov qword [rsp + 0x28], rax
mov rdx, r12
xor r8d, r8d
mov r9d, 0x6a93e401
call fcn.1402b23d0
mov qword [r12 + 8], 0
mov byte [r12 + 0x10], 0
mov qword [r12 + 0x18], 0
mov byte [r12 + 0x20], 0
mov qword [r12 + 0x28], 0
mov word [r12 + 0x30], 0
mov qword [r12 + 0x38], 0
mov word [r12 + 0x40], 0
mov qword [r12 + 0x48], 0
mov byte [r12 + 0x50], 0
mov qword [r12 + 0x58], 0
mov byte [r12 + 0x60], 0
mov rdx, qword [rbp + 0x120]
test rdx, rdx
nop
mov qword [rbp + 0x70], r12
je 0x1402add76
mov rcx, r12
call fcn.1400956b0
mov rax, qword [rbp + 0x70]
jmp 0x1402add05
nop
mov eax, dword [0x14073bb58]
mov qword [rbp + 0x90], rax
mov r14, qword [rbp + 0x98]
mov rcx, r14
call fcn.140095650
mov rsi, rax
mov r8, qword [rbp + 0x120]
mov rax, qword [r8]
movsxd rcx, dword [rax + 4]
mov rcx, qword [r8 + rcx + 0x28]
xor edx, edx
mov rbx, rcx
sub rbx, rsi
mov edi, 0
cmovg rdi, rbx
test rcx, rcx
cmovle rdi, rdx
mov qword [rbp + 0x78], r8
movsxd rax, dword [rax + 4]
mov rcx, qword [r8 + rax + 0x48]
test rcx, rcx
je 0x1402ad877
nop
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140704440]
nop
mov rdx, qword [rbp + 0x120]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
cmp dword [rdx + rax + 0x10], 0
je 0x1402ada0c
nop
mov byte [rbp + 0x80], 0
jmp 0x1402ada60
mov rcx, r15
or rcx, 0xf
add rax, rdi
cmp rcx, rax
mov rbx, rax
cmova rbx, rcx
lea rcx, [rbx + 1]
cmp rbx, 0xfff
jb 0x1402ad99b
cmp rbx, 0xffffffffffffffd8
jae 0x1402ade67
add rcx, 0x27
call fcn.1400954c0
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1402ad9a3
nop
mov qword [r12 + 0x18], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rsi
mov rcx, rax
mov r9d, 0xa66544c
mov rsi, rax
call fcn.1402b23d0
mov byte [r12 + rsi + 8], 0
lea rax, [0x1405e7948]
mov qword [r12], rax
nop
mov qword [rbp + 0x98], r12
jmp 0x1402add0c
nop
mov qword [rsp + 0x28], r13
mov r15, qword [rbp + 0x98]
mov rdx, r15
mov rbx, qword [rbp + 0x90]
mov r8, rbx
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
lea r14, [rbx + r15]
mov rax, qword [rbp + 0x120]
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov r8, r14
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
sub rdi, r12
sub rdi, r15
inc rdi
add r15, r13
add r15, r12
add r14, rsi
mov qword [rsp + 0x28], r15
mov rdx, rdi
mov r8, r14
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
nop
mov qword [r13], rbx
jmp 0x1402ada00
call fcn.1400954c0
mov rsi, rax
nop
mov qword [r13 + 0x10], r15
mov qword [r13 + 0x18], rbx
mov rcx, rsi
mov edx, r12d
mov r8, r15
call fcn.1405c44a0
mov byte [rsi + r15], 0
cmp rdi, 0x10
jb 0x1402ad9fb
lea rdx, [rdi + 1]
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x1402ad9f6
nop
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1402adfcc
add rdi, 0x28
mov rdx, rdi
mov rcx, rax
call fcn.140095520
nop
mov qword [r13], rsi
mov qword [rbp + 0x98], r13
jmp 0x1402add0c
nop
mov rcx, qword [rdx + rax + 0x50]
test rcx, rcx
je 0x1402ada58
cmp rcx, rdx
je 0x1402ada58
call fcn.1400c4410
nop
mov rcx, qword [rbp + 0x120]
mov rax, qword [rcx]
movsxd rax, dword [rax + 4]
cmp dword [rcx + rax + 0x10], 0
sete byte [rbp + 0x80]
jmp 0x1402ada60
test rcx, rcx
je 0x1402add57
call fcn.1400954c0
mov qword [rbp + 0x90], rax
jmp 0x1402ad5fb
nop
mov byte [rbp + 0x80], 1
nop
cmp byte [rbp + 0x80], 0
je 0x1402adbf8
nop
mov rdx, qword [rbp + 0x120]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov ecx, 0x1c0
and ecx, dword [rdx + rax + 0x18]
cmp ecx, 0x40
je 0x1402adb1b
test rdi, rdi
jle 0x1402adb1b
xor edi, edi
jmp 0x1402adac3
dec r8d
mov dword [rdx], r8d
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
mov byte [rdx], al
lea rax, [rbx - 1]
cmp rbx, 1
mov rbx, rax
jle 0x1402adb1b
nop
mov rdx, qword [rbp + 0x120]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rdx + rax + 0x48]
movzx eax, byte [rdx + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x1402adaf3
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x1402adaa0
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [0x140704440]
mov dword [rbp + 0x8c], 0
call r8
cmp eax, 0xffffffff
jne 0x1402adab6
jmp 0x1402adbd9
nop
mov rcx, qword [rbp + 0x120]
mov rax, qword [rcx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rcx + rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
mov r9, qword [0x140704440]
mov dword [rbp + 0x8c], 0
mov rdx, r14
mov r8, rsi
call r9
xor ebx, ebx
cmp rax, rsi
setne bl
shl ebx, 2
cmp rax, rsi
jne 0x1402adbde
test rdi, rdi
jg 0x1402adb8a
jmp 0x1402adbde
dec r8d
mov dword [rdx], r8d
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
mov byte [rdx], al
lea rax, [rdi - 1]
cmp rdi, 1
mov rdi, rax
jle 0x1402adbde
nop
mov rdx, qword [rbp + 0x120]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rdx + rax + 0x48]
movzx eax, byte [rdx + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x1402adbba
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x1402adb67
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [0x140704440]
mov dword [rbp + 0x8c], ebx
call r8
cmp eax, 0xffffffff
jne 0x1402adb7d
mov ebx, 4
nop
mov rdx, qword [rbp + 0x120]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov qword [rdx + rax + 0x28], 0
jmp 0x1402adc04
mov ebx, 4
mov rdx, qword [rbp + 0x120]
nop
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
or ebx, dword [rdx + rax + 0x10]
xor ecx, ecx
cmp qword [rdx + rax + 0x48], 0
sete cl
shl ecx, 2
and ebx, 0x17
or ebx, ecx
mov dword [rdx + rax + 0x10], ebx
and ebx, dword [rdx + rax + 0x14]
jne 0x1402adda1
nop
mov rdx, qword [rbp + 0x90]
xor edx, 0xd2f09736
mov r9d, 0xc585dd47
call fcn.1402b23d0
test al, 1
jne 0x1402adc63
nop
mov rax, qword [rbp + 0x78]
nop
mov qword [rsp + 0x28], rax
mov ecx, 0x43caf2a7
call fcn.1402ad2a0
nop
mov rax, qword [rbp + 0x78]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rax + rcx + 0x48]
test rcx, rcx
je 0x1402adc88
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
nop
call qword [0x140704440]
nop
mov rax, qword [rbp + 0x120]
jmp 0x1402add05
lea rax, [0x1405e824c]
nop
mov qword [rsp + 0x30], rax
lea rdx, [rbp - 0x30]
mov ecx, 0x24f9df65
call fcn.1402ad2a0
nop
mov rbx, qword [rbp + 0x90]
mov dword [rbx + 8], 0
lea rax, [0x1405e8a58]
mov qword [rbx], rax
lea rsi, [rbp + 0x38]
mov rcx, rsi
call fcn.140095700
mov r8, rbx
add r8, 0x10
mov qword [rsp + 0x28], rsi
mov edx, 0x20
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
mov qword [rdi], rbx
lea r8, [rbp - 0x30]
mov r9d, 0x8f887ec5
call fcn.1402b0d20
mov eax, 2
mov qword [rbp + 0x98], rax
mov rax, qword [rbp + 0x98]
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
nop
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
mov ebx, dword [r14 + rax + 0x10]
and ebx, 0x13
or ebx, 4
mov dword [r14 + rax + 0x10], ebx
mov edi, dword [r14 + rax + 0x14]
and ebx, edi
jne 0x1402adf0c
xor eax, eax
mov qword [rbp + 0x98], rax
jmp 0x1402add0c
mov r15, 0xffffffffffffffff
xor eax, eax
mov qword [rbp + 0x90], rax
jmp 0x1402ad5fb
call fcn.14008bd90
call fcn.14008bd90
nop
movzx eax, byte [0x14073ab10]
cmp al, 0xdc
je 0x1402adf02
mov cl, 0x7b
mov al, 0xb
lock cmpxchg byte [0x14073ab10], cl
je 0x1402ade6c
cmp al, 0xdc
jne 0x1402add88
jmp 0x1402adf02
mov eax, 0x8df74890
mov rsi, qword [rbp + 0x90]
xor rax, rsi
mov qword [rsp + 0x20], rax
mov r9d, 0x24ee10d4
call fcn.1402b23d0
mov rax, rsi
xor rax, 0x3fe7a26a
mov qword [rsp + 0x20], rax
mov r9d, 0x20cbfec3
call fcn.1402b23d0
test bl, 2
lea rax, [0x14073abe0]
lea rdi, [0x14073abc0]
cmove rdi, rax
xor esi, 0x9f45f41f
mov rdx, rsi
mov r9d, 0xf3795950
call fcn.1402b23d0
test bl, 4
lea rsi, [0x14073aba0]
cmove rsi, rdi
lea rdi, [rbp + 0x58]
mov rcx, rdi
mov edx, 1
call fcn.14008c180
mov qword [rsp + 0x28], rdi
lea rdi, [rbp + 0x38]
mov edx, 0x10
mov r8, rdi
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
lea rcx, [rbp - 0x30]
mov rdx, rdi
mov r8, rsi
call fcn.1402a8eb0
lea rax, [0x1405e8038]
mov qword [rbp - 0x30], rax
lea rdx, [0x140647838]
lea rcx, [rbp - 0x30]
call fcn.1400954f0
call fcn.14008b830
mov eax, 0xc4d4d56
mov ecx, 0xf3b2b2b4
mov edx, 0xc4d4d57
mov r8d, 0xf3b2b2b3
xor r9d, r9d
mov r10d, 0xba2e8ba3
lea r11, [0x14073ab00]
lea rsi, [0x1405f60c0]
mov edi, ecx
imul rdi, r10
shr rdi, 0x23
lea ebx, [rdi + rdi*4]
lea edi, [rdi + rbx*2]
add edi, eax
mov ebx, r8d
imul rbx, r10
shr rbx, 0x23
lea r14d, [rbx + rbx*4]
lea ebx, [rbx + r14*2]
add ebx, edx
movzx r14d, byte [r9 + r11]
movzx r15d, byte [r9 + r11 + 1]
xor r14b, byte [rbx + rsi]
xor r14b, 0x2f
mov byte [r9 + r11], r14b
xor r15b, byte [rdi + rsi]
xor r15b, 0x2f
mov byte [r9 + r11 + 1], r15b
add r9, 2
add eax, 0xfffffffe
add ecx, 2
add edx, 0xfffffffe
add r8d, 2
cmp r9, 0x10
jne 0x1402ade98
mov al, 0xdc
xchg byte [0x14073ab10], al
call fcn.1402aae70
call fcn.14008b830
mov eax, 0xa42362ee
xor rax, rsi
mov qword [rsp + 0x20], rax
mov r9d, 0x24ee10d4
call fcn.1402b23d0
mov rax, rsi
xor rax, 0x16338814
mov qword [rsp + 0x20], rax
mov r9d, 0x56c3c4c3
call fcn.1402b23d0
test bl, 2
lea rax, [0x14073abe0]
lea rbx, [0x14073abc0]
cmove rbx, rax
xor esi, 0xb691de61
mov rdx, rsi
mov r9d, 0xf3795950
call fcn.1402b23d0
test dil, 4
lea rsi, [0x14073aba0]
cmove rsi, rbx
lea rdi, [rbp + 0x58]
mov rcx, rdi
mov edx, 1
call fcn.14008c180
mov qword [rsp + 0x28], rdi
lea rdi, [rbp + 0x38]
mov edx, 0x10
mov r8, rdi
mov r9d, 0x4b6a3cd5
call fcn.1402b23d0
lea rcx, [rbp - 0x30]
mov rdx, rdi
mov r8, rsi
call fcn.1402a8eb0
lea rax, [0x1405e8038]
mov qword [rbp - 0x30], rax
lea rdx, [0x140647838]
lea rcx, [rbp - 0x30]
call fcn.1400954f0
call fcn.1400954e0
call fcn.1400954e0
nop
mov ebx, dword [rbp + 0x8c]
jmp 0x1402adbfd