Function at 0x140059790
Capabilities:
Encode data using xor

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 - 0x848]
sub rsp, 0x920
mov rax, qword [0x1400aa998]
xor rax, rsp
mov qword [rbp + 0x810], rax
mov r13, rcx
mov qword [rsp + 0x68], rcx
mov ecx, 0x6c
call fcn.140001934
mov rcx, qword [r13]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [case.0x14005b02f.0]
mov qword [rbp - 0x40], rax
xor edx, edx
movabs r8, 0x7fffffff7fffffff
mov rcx, qword [r13]
call fcn.14005d26c
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
xor r14d, r14d
mov qword [rsp + 0x70], r14
mov qword [rbp - 0x60], r14
xor edi, edi
mov r8, qword [r13 + 0xa8]
mov rcx, qword [r13 + 0xb0]
sub rcx, r8
movabs r15, 0x2aaaaaaaaaaaaaab
mov rax, r15
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
lea ebx, [rdi + 1]
add rdx, rax
lea r12, [r13 + 0xd8]
mov qword [rbp - 0x80], r12
mov rsi, qword [rbp - 0x68]
je 0x1400598d4
xor ebx, ebx
mov rax, qword [r12]
cmp qword [rbx + r8], rax
jne 0x140059897
add r8, 8
add r8, rbx
cmp rsi, r14
je 0x140059883
mov eax, dword [r8]
mov dword [rsi], eax
add rsi, 4
mov qword [rbp - 0x68], rsi
jmp 0x140059897
mov rdx, rsi
lea rcx, [rbp - 0x70]
call fcn.140057800
mov r14, qword [rbp - 0x60]
mov rsi, qword [rbp - 0x68]
inc rdi
add rbx, 0x18
mov r8, qword [r13 + 0xa8]
mov rcx, qword [r13 + 0xb0]
sub rcx, r8
mov rax, r15
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdi, rdx
jb 0x14005985e
mov qword [rsp + 0x70], r14
mov ebx, 1
jmp 0x1400598d8
mov qword [rbp - 0x80], r12
mov rdi, qword [rbp - 0x70]
sub rsi, rdi
sar rsi, 2
mov eax, 0x818
mul rsi
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140078b2c
mov r15, rax
mov rcx, qword [r13 + 0x78]
mov rdx, qword [r13 + 0x80]
sub rdx, rcx
sar rdx, 5
lea r9, [0x14005ac90]
mov r8d, 0x20
call fcn.14007e290
mov rcx, qword [r13 + 0x98]
sub rcx, qword [r13 + 0x90]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rcx, [rbp - 0x58]
call fcn.140057eb8
nop
xor r10d, r10d
mov r8, qword [r13 + 0x90]
mov rcx, qword [r13 + 0x98]
sub rcx, r8
movabs r11, 0x6666666666666667
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140059a14
xor r9d, r9d
mov r14, qword [rbp - 0x58]
mov rax, qword [r12]
cmp qword [r9 + r8], rax
jne 0x1400599e3
mov r8, qword [r9 + r8 + 8]
mov rdx, r8
shr rdx, 3
and rdx, qword [rbp - 0x48]
movzx ecx, byte [rdx + r14]
mov eax, r8d
and eax, 7
bts ecx, eax
mov byte [rdx + r14], cl
shr r8, 0x1e
mov rcx, r8
shr rcx, 3
and rcx, qword [rbp - 0x48]
movzx eax, byte [rcx + r14]
and r8d, 7
bts eax, r8d
mov byte [rcx + r14], al
add r10, rbx
add r9, 0x28
mov r8, qword [r13 + 0x90]
mov rcx, qword [r13 + 0x98]
sub rcx, r8
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r10, rdx
jb 0x140059997
lea rcx, [rbp + 0x10]
call fcn.140022828
xor r12d, r12d
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x60], 0x7fffffff
xor edx, edx
test rsi, rsi
je 0x140059ace
xor eax, eax
mov r14d, 0x7fffffff
lea r13d, [r12 + 1]
imul r8, rax, 0x818
mov ecx, dword [rdi + rax*4]
mov dword [r8 + r15], ecx
mov eax, ecx
cmp ecx, r12d
cmovbe eax, r12d
mov r12d, eax
cmp ecx, r14d
cmovae ecx, r14d
mov r14d, ecx
mov byte [r8 + r15 + 0x810], 0
xor r9d, r9d
lea r10, [r8 + 8]
add r10, r15
mov ebx, 0x100
movzx eax, r9b
mov rcx, qword [rbp + rax*8 + 0x10]
cmp dword [r8 + r15], 0
jbe 0x140059aa6
mov r11d, dword [r8 + r15]
movzx eax, cl
shr rcx, 8
xor rcx, qword [rbp + rax*8 + 0x10]
sub r11, r13
jne 0x140059a95
mov qword [r10], rcx
add r9, r13
add r10, 8
sub rbx, r13
jne 0x140059a81
add edx, r13d
mov eax, edx
cmp rax, rsi
jb 0x140059a45
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x60], r14d
mov r13, qword [rsp + 0x68]
mov ebx, 0x400000
mov ecx, ebx
call fcn.140078b2c
mov r12, rax
mov qword [rbp - 0x78], rax
mov r9, qword [r13]
mov rcx, qword [r9]
mov rax, qword [rcx + 0x20]
xor r8d, r8d
xor edx, edx
mov rcx, r9
call qword [case.0x14005b02f.0]
mov r9, qword [r13]
mov rcx, qword [r9]
mov rax, qword [rcx + 0x18]
mov r8d, ebx
mov rdx, r12
mov rcx, r9
call qword [case.0x14005b02f.0]
movsxd rbx, eax
mov qword [rsp + 0x40], rbx
xor ecx, ecx
mov dword [rsp + 0x30], ecx
test rsi, rsi
je 0x140059b74
xor eax, eax
mov rdi, rbx
lea r13d, [rcx + 1]
imul rbx, rax, 0x818
mov r8d, dword [rbx + r15]
cmp rdi, r8
jb 0x140059b5e
mov rdx, r12
xor ecx, ecx
call fcn.1400226a8
mov qword [rbx + r15 + 0x808], rax
mov byte [rbx + r15 + 0x810], r13b
mov ecx, dword [rsp + 0x30]
add ecx, r13d
mov dword [rsp + 0x30], ecx
mov eax, ecx
cmp rax, rsi
jb 0x140059b30
mov r13, qword [rsp + 0x68]
mov rbx, rdi
and dword [rsp + 0x50], 0
and qword [rsp + 0x78], 0
xor edx, edx
mov qword [rsp + 0x48], rdx
xor edi, edi
mov r14d, dword [rsp + 0x38]
mov ecx, r14d
lea rax, [rdi + 0x40]
cmp rax, rbx
jae 0x140059cb7
cmp byte [rdi + r12], 0x7b
jne 0x140059cb7
cmp byte [rdi + r12 + 1], 0x52
jne 0x140059cb7
cmp byte [rdi + r12 + 2], 0x42
jne 0x140059cb7
cmp byte [rdi + r12 + 3], 0x7d
jne 0x140059cb7
mov eax, 1
cmp byte [rdi + r12 + 0x14], al
jne 0x140059cb7
mov eax, dword [rdi + r12 + 0xc]
mov qword [rsp + 0x58], rax
add rax, rcx
add rax, rdi
cmp rax, rbx
jae 0x140059cb7
mov rax, qword [rbp - 0x80]
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
lea rax, [rdi + rdx]
mov qword [rbp], rax
mov rdx, qword [r13 + 0x78]
mov r8, qword [r13 + 0x80]
sub r8, rdx
sar r8, 5
lea rax, [0x14005ac90]
mov qword [rsp + 0x20], rax
mov r9d, 0x20
lea rcx, [rbp - 0x10]
call fcn.140080c24
test rax, rax
je 0x140059cb7
add rdi, qword [rsp + 0x58]
and dword [rsp + 0x30], 0
test rsi, rsi
mov ecx, r14d
mov rdx, qword [rsp + 0x48]
je 0x140059b90
xor eax, eax
lea rcx, [rdi + r12]
mov r13d, dword [rsp + 0x30]
mov r12, rcx
lea r14d, [rax + 1]
imul rbx, rax, 0x818
mov r8d, dword [rbx + r15]
mov rdx, r12
xor ecx, ecx
call fcn.1400226a8
mov qword [rbx + r15 + 0x808], rax
mov byte [rbx + r15 + 0x810], r14b
add r13d, r14d
mov eax, r13d
cmp rax, rsi
jb 0x140059c67
mov r12, qword [rbp - 0x78]
mov r13, qword [rsp + 0x68]
mov r14d, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov ecx, r14d
mov rdx, qword [rsp + 0x48]
jmp 0x140059b90
xor r11d, r11d
mov dword [rsp + 0x30], r11d
xor cl, cl
mov dword [rsp + 0x34], ecx
and dword [rsp + 0x58], r11d
test rsi, rsi
je 0x140059f09
xor eax, eax
mov r12d, dword [rsp + 0x58]
mov rbx, qword [rsp + 0x78]
lea edx, [rax + 1]
imul r9, rax, 0x818
cmp byte [r9 + r15 + 0x810], 0
je 0x140059e82
mov r8, qword [r9 + r15 + 0x808]
mov qword [rbp - 0x30], r8
mov cl, r8b
and cl, 7
mov edx, 1
shl edx, cl
mov rax, r8
shr rax, 3
and rax, qword [rbp - 0x48]
mov r10, qword [rbp - 0x58]
test byte [rax + r10], dl
mov edx, 1
je 0x140059e7e
shr r8, 0x1e
mov cl, r8b
and cl, 7
shl edx, cl
shr r8, 3
and r8, qword [rbp - 0x48]
test byte [r8 + r10], dl
je 0x140059e79
mov rax, qword [rbp - 0x80]
mov rax, qword [rax]
mov qword [rbp - 0x38], rax
mov eax, dword [r9 + r15]
mov dword [rbp - 0x18], eax
mov r10, qword [r13 + 0x90]
mov rcx, qword [r13 + 0x98]
sub rcx, r10
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov r8, rdx
shr r8, 0x3f
add r8, rdx
lea rax, [0x14005ac30]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
mov rdx, r10
lea rcx, [rbp - 0x38]
call fcn.140080c24
mov r8, rax
test rax, rax
je 0x140059e74
mov rdx, qword [rax + 0x18]
mov r9, qword [rax + 0x10]
mov rcx, r9
sub rcx, rdx
mov r11, rdx
sub r11, r9
cmp rdx, r9
cmovbe r11, rcx
mov r10, qword [rsp + 0x48]
add r10, rdi
mov rax, r9
sub rax, r10
mov rcx, r10
sub rcx, r9
cmp r10, r9
cmovbe rcx, rax
movabs rax, 0x7fffffff7fffffff
cmp rdx, rax
je 0x140059dff
cmp rcx, r11
jae 0x140059e74
mov qword [r8 + 0x18], r10
mov r11d, dword [rbp - 0x18]
mov dword [rsp + 0x30], r11d
test rbx, rbx
je 0x140059e3c
mov eax, dword [rbx + 0x20]
cmp eax, dword [r8 + 0x20]
jne 0x140059e3c
mov rcx, qword [rbx + 0x18]
add rcx, rax
cmp rcx, r10
jne 0x140059e3c
mov rcx, qword [rbx + 0x10]
add rcx, rax
cmp rcx, r9
jne 0x140059e3c
mov r10d, dword [rsp + 0x50]
inc r10d
jmp 0x140059e3f
xor r10d, r10d
mov dword [rsp + 0x50], r10d
xor edx, edx
mov eax, r14d
div dword [r8 + 0x20]
inc eax
mov ecx, 5
cmp eax, ecx
cmovb eax, ecx
mov ecx, dword [rsp + 0x34]
movzx ecx, cl
cmp r10d, eax
mov edx, 1
cmova ecx, edx
mov dword [rsp + 0x34], ecx
mov rbx, r8
jmp 0x140059e82
mov r11d, dword [rsp + 0x30]
mov edx, 1
mov ecx, dword [rsp + 0x34]
add r12d, edx
mov eax, r12d
cmp rax, rsi
jb 0x140059ce2
mov qword [rsp + 0x78], rbx
mov r12, qword [rbp - 0x78]
mov rbx, qword [rsp + 0x40]
test cl, cl
je 0x140059f09
mov edx, r14d
test r11d, r11d
je 0x140059f0c
mov ecx, r11d
lea rax, [rcx + rdx]
add rax, rdi
cmp rax, rbx
jae 0x140059f0c
cmp byte [rdi + r12], 0
je 0x140059f0c
add rdi, rcx
xor r13d, r13d
xor eax, eax
lea rcx, [rdi + r12]
mov r12, rcx
lea r14d, [r13 + 1]
imul rbx, rax, 0x818
mov r8d, dword [rbx + r15]
mov rdx, r12
xor ecx, ecx
call fcn.1400226a8
mov qword [rbx + r15 + 0x808], rax
mov byte [rbx + r15 + 0x810], r14b
add r13d, r14d
mov eax, r13d
cmp rax, rsi
jb 0x140059ed4
jmp 0x140059c97
mov edx, r14d
lea rax, [rdx + rdi]
cmp rax, rbx
jb 0x140059f92
sub rbx, rdi
cmp rbx, rdx
jne 0x140059f7d
call fcn.1400681b0
lea rdx, [rdi + r12]
mov r8, rbx
mov rcx, r12
call fcn.14007a940
xor edi, edi
mov rax, qword [rsp + 0x40]
sub rax, rbx
add qword [rsp + 0x48], rax
mov rcx, qword [r13]
mov rax, qword [rcx]
mov r8d, 0x400000
sub r8, rbx
lea rdx, [rbx + r12]
mov rax, qword [rax + 0x18]
call qword [case.0x14005b02f.0]
movsxd rcx, eax
add rbx, rcx
mov qword [rsp + 0x40], rbx
mov r8, qword [rbp - 0x40]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [r13]
call fcn.14005d26c
jmp 0x140059f82
mov rbx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x60]
add rax, rdi
cmp rax, rbx
jae 0x14005a015
xor r10d, r10d
test rsi, rsi
je 0x14005a00a
xor r8d, r8d
lea r14d, [r10 + 1]
imul r9, r8, 0x818
mov r11d, dword [r9 + r15]
add r11, rdi
cmp r11, rbx
jae 0x140059ff1
mov rdx, qword [r9 + r15 + 0x808]
movzx ecx, byte [rdi + r12]
imul rax, r8, 0x103
add rcx, rax
movzx eax, byte [r11 + r12]
xor rax, rdx
movzx eax, al
mov rcx, qword [r15 + rcx*8 + 8]
xor rcx, qword [rbp + rax*8 + 0x10]
shr rdx, 8
xor rcx, rdx
mov qword [r9 + r15 + 0x808], rcx
jmp 0x140059ffa
mov byte [r9 + r15 + 0x810], 0
add r10d, r14d
mov r8d, r10d
cmp r8, rsi
jb 0x140059fa1
mov r14d, dword [rsp + 0x38]
inc rdi
mov ecx, r14d
jmp 0x140059cad
mov rcx, r12
call fcn.140078b24
mov rcx, r15
call fcn.140078b24
mov edx, 0x64
mov r8d, edx
mov rcx, qword [r13]
call fcn.14005d26c
nop
mov edx, 1
mov rcx, qword [rbp - 0x58]
call fcn.140078b24
nop
mov rcx, qword [rbp - 0x70]
test rcx, rcx
mov r14, qword [rsp + 0x70]
je 0x14005a084
sub r14, rcx
and r14, 0xfffffffffffffffc
mov rax, rcx
cmp r14, 0x1000
jb 0x14005a07c
add r14, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005a0b4
mov rdx, r14
call fcn.140078b24
mov rcx, qword [rbp + 0x810]
xor rcx, rsp
call fcn.140078ca0
lea r11, [rsp + 0x920]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14007e144
int3