Function at 0x140507a30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e8
mov rsi, r9
mov r14, r8
mov r12, rdx
mov rdi, rcx
mov ecx, dword [rsp + 0x260]
mov rbx, qword [rdi + 0xb8]
call fcn.14048a030
test rax, rax
jne 0x140507a72
mov r15d, 0xffffb080
jmp 0x140507dd5
mov rbp, rax
add rbx, 7
shr rbx, 3
lea rcx, [rsp + 0x58]
call fcn.14048e290
lea rcx, [rsp + 0xd8]
call fcn.1404db220
lea rdx, [rsp + 0x70]
mov rcx, rsi
mov r8, rbx
call fcn.14048eb10
mov r15d, eax
test eax, eax
jne 0x140507dbe
mov r9, qword [rsp + 0x258]
mov r8, qword [rsp + 0x250]
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.1405083b0
mov r15d, eax
test eax, eax
jne 0x140507dbe
lea rdx, [rsp + rbx]
add rdx, 0x70
lea rcx, [rsp + 0x58]
mov r8, rbx
call fcn.14048eb10
mov r15d, eax
test eax, eax
jne 0x140507dbe
add rbx, rbx
lea r13, [rsp + 0xd8]
lea r8, [rsp + 0x70]
mov rcx, r13
mov rdx, rbp
mov r9, rbx
call fcn.1404db380
mov r15d, eax
test eax, eax
jne 0x140507dbe
mov rax, qword [rsp + 0x268]
test rax, rax
je 0x140507b83
mov rcx, qword [rsp + 0x270]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
lea rax, [0x1404db650]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x258]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x250]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, r12
mov r8, r14
mov r9, rsi
call fcn.140507760
mov r15d, eax
jmp 0x140507dbe
lea rax, [fcn.140507760]
imul eax, eax
and eax, 3
xor ecx, ecx
cmp eax, 1
seta cl
mov eax, ecx
not eax
lea eax, [rax + rcx*2]
and al, 7
movzx eax, al
movzx ecx, byte [0x140657fa7]
bt ecx, eax
jb 0x140507d19
mov al, byte [0x140657fa7]
lea r8, [fcn.140507760]
imul r8d, r8d
and r8d, 3
xor edx, edx
cmp r8d, 1
seta dl
mov ecx, edx
not ecx
lea ecx, [rcx + rdx*2]
and cl, 7
xor cl, 7
mov dl, 1
shl dl, cl
or dl, al
lock cmpxchg byte [0x140657fa7], dl
jne 0x140507bc9
lea rcx, [fcn.140507760]
imul ecx, ecx
and ecx, 3
xor edx, edx
cmp ecx, 1
seta dl
mov ecx, edx
not ecx
lea ecx, [rcx + rdx*2]
and cl, 7
xor cl, 7
movzx ecx, cl
movzx eax, al
bt eax, ecx
jae 0x140507c4f
lea rax, [fcn.140507760]
imul eax, eax
and eax, 3
xor ecx, ecx
cmp eax, 1
seta cl
mov edx, ecx
not edx
lea ecx, [rdx + rcx*2]
and cl, 7
movzx ecx, cl
movzx edx, byte [0x140657fa7]
bt edx, ecx
jae 0x140507c29
jmp 0x140507d19
lea rax, [fcn.140507760]
imul eax, eax
and eax, 3
xor ecx, ecx
cmp eax, 1
seta cl
mov eax, 0xe8f45e2f
xor rax, rcx
or ecx, 0x140
and ecx, 0x141
lea rdx, [rax + rcx*2]
mov eax, edx
and al, 7
movzx eax, al
movzx ecx, byte [0x140657fa7]
bt ecx, eax
jb 0x140507ced
lea r8, [0x140657f90]
xor r9d, r9d
mov eax, dword [r8]
xor eax, edx
mov r10d, edx
mov ecx, r9d
shl r10d, cl
xor cl, 0x1f
shr edx, cl
mov dword [r8], eax
or edx, r10d
not eax
imul edx, eax
add r8, 4
inc r9d
cmp r9d, 5
jne 0x140507c99
lea rax, [fcn.140507760]
imul eax, eax
and eax, 3
xor ecx, ecx
cmp eax, 1
seta cl
mov eax, ecx
not eax
lea ecx, [rax + rcx*2]
and cl, 7
mov al, 1
shl al, cl
or byte [0x140657fa7], al
lea rax, [fcn.140507760]
imul eax, eax
and eax, 3
xor ecx, ecx
cmp eax, 1
seta cl
mov eax, ecx
not eax
lea ecx, [rax + rcx*2]
and cl, 7
xor cl, 7
mov al, 0xfe
rol al, cl
and byte [0x140657fa7], al
lea r15, [rsp + 0x160]
mov rcx, r15
call fcn.1404db220
lea r8, [rsp + 0x70]
mov rcx, r15
mov rdx, rbp
mov rbp, r15
mov r9, rbx
call fcn.1404db380
lea rbx, [0x140657f90]
mov rcx, rbx
call fcn.1401ee050
mov rcx, r15
mov rdx, rbx
mov r8, rax
call fcn.1404db250
test eax, eax
je 0x140507d6d
mov r15d, eax
lea rcx, [rsp + 0x160]
jmp 0x140507db9
mov qword [rsp + 0x48], rbp
lea rax, [0x1404db650]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x258]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x250]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, r12
mov r8, r14
mov r9, rsi
call fcn.140507760
mov r15d, eax
mov rcx, rbp
call fcn.1404db6b0
lea rcx, [rsp + 0xd8]
call fcn.1404db6b0
lea rcx, [rsp + 0x58]
call fcn.14048e2a0
mov eax, r15d
add rsp, 0x1e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret