Function at 0x1400ab400
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
mov edi, dword [rsp + 0xa0]
test ecx, ecx
je 0x1400ab491
test edx, edx
je 0x1400ab4c9
movzx eax, byte [0x1405502bb]
cmp al, 0xec
je 0x1400ab5c1
mov eax, edi
not eax
mov ecx, eax
and ecx, 0xf0fb47d9
mov ebp, edi
and ebp, 0xf04b826
or ebp, ecx
and eax, 0xbf496f98
mov ebx, edi
and ebx, 0x40b69067
or ebx, eax
lea r14, [rsp + 0x30]
nop
mov eax, dword [0x1405508c8]
add eax, ebp
mov edx, eax
xor edx, eax
not edx
and edx, esi
xor edx, eax
mov rcx, r14
mov r8d, ebx
call fcn.1400ab390
test al, 1
jne 0x1400ab529
cmp byte [rsp + 0x30], 0xec
jne 0x1400ab460
jmp 0x1400ab5c1
test edx, edx
je 0x1400ab4f9
movzx eax, byte [0x140550086]
cmp al, 0x6e
je 0x1400ab674
mov cl, 0xdf
nop word cs:[rax + rax]
mov al, 0xce
lock cmpxchg byte [0x140550086], cl
je 0x1400ab5cd
cmp al, 0x6e
jne 0x1400ab4b0
jmp 0x1400ab674
movzx eax, byte [0x1405500f8]
cmp al, 0x2e
je 0x1400ab6fa
mov cl, 0xff
nop word [rax + rax]
mov al, 0x77
lock cmpxchg byte [0x1405500f8], cl
je 0x1400ab680
cmp al, 0x2e
jne 0x1400ab4e0
jmp 0x1400ab6fa
movzx eax, byte [0x14055036f]
cmp al, 0x87
je 0x1400ab775
mov cl, 0xf2
nop word [rax + rax]
mov al, 0xb5
lock cmpxchg byte [0x14055036f], cl
je 0x1400ab703
cmp al, 0x87
jne 0x1400ab510
jmp 0x1400ab775
xor r15d, r15d
lea r13, [0x140489320]
mov ebx, esi
xor ebx, 0xe32b7846
mov ebp, edi
xor ebp, 0xd74a7c8b
lea r14, [rsp + 0x30]
xor esi, 0x8ee7ea95
xor edi, 0xa8e945a9
nop word cs:[rax + rax]
movsxd r15, r15d
lea rax, [0x1405502b0]
movzx r12d, byte [r15 + rax]
xor r12b, byte [r15 + r13]
mov ecx, r15d
mov rdx, r14
mov r8d, ebx
mov r9d, ebp
call fcn.1400ac9a0
mov rax, qword [rsp + 0x30]
mov byte [rax], r12b
add r15d, 0x81394699
mov eax, r15d
xor eax, 1
and r15d, 1
lea r15d, [rax + r15*2]
add r15d, 0x7ec6b967
mov ecx, r15d
mov edx, esi
mov r8d, edi
call fcn.1400abfa0
test al, 1
je 0x1400ab560
mov al, 0xec
xchg byte [0x1405502bb], al
lea rax, [0x1405502b0]
jmp 0x1400ab77c
xor eax, eax
mov ebx, edi
xor ebx, 0x40df58a8
lea r14, [rsp + 0x30]
lea r12, [0x140489110]
lea r13, [0x140550080]
xor edi, 0x506e2e45
movsxd r15, eax
mov eax, esi
xor eax, 0xfeb6d5b3
mov r8d, esi
not r8d
and r8d, esi
xor r8d, eax
mov rcx, r15
mov rdx, r14
mov r9d, ebx
call fcn.1400ab2c0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
add al, 0xd0
movzx ecx, byte [r15 + r12]
xor cl, al
mov edx, ecx
not dl
and dl, al
add dl, dl
mov eax, ecx
xor al, dl
and dl, cl
add dl, dl
add dl, al
mov eax, edx
xor al, 0x30
and dl, 0x30
add dl, dl
add dl, al
mov byte [r15 + r13], dl
add r15d, 0x2cd80ec2
mov eax, r15d
xor eax, 0xd327f13f
and r15d, 0x5327f13f
lea eax, [rax + r15*2]
mov ecx, dword [0x1405508c8]
add ecx, edi
cmp eax, ecx
jl 0x1400ab5f0
mov al, 0x6e
xchg byte [0x140550086], al
lea rax, [0x140550080]
jmp 0x1400ab77c
xor eax, eax
lea r14, [0x1405500e0]
lea r15, [0x140489170]
xor esi, 0x4aafe297
xor edi, 0x17817873
lea rbx, [rsp + 0x30]
nop word cs:[rax + rax]
movsxd r12, eax
movzx ecx, byte [r12 + r14]
movzx edx, byte [r12 + r15]
mov dword [rsp + 0x20], edi
mov r8, rbx
mov r9d, esi
call fcn.1400ab900
movzx eax, byte [rsp + 0x30]
mov byte [r12 + r14], al
mov eax, r12d
xor eax, 0x29530611
and r12d, 0x29530611
lea eax, [rax + r12*2]
add eax, 0xd6acf9f0
cmp eax, 0x18
jl 0x1400ab6b0
mov al, 0x2e
xchg byte [0x1405500f8], al
lea rax, [0x1405500e0]
jmp 0x1400ab77c
xor ebx, ebx
xor esi, 0xe6a163e2
mov eax, edi
not eax
mov ecx, eax
and ecx, 0x8ca65223
and edi, 0x7359addc
or edi, ecx
and eax, 0x7359addc
or edi, eax
not edi
or edi, eax
lea r14, [rsp + 0x30]
lea r15, [0x1404893d0]
lea r12, [0x140550360]
nop dword [rax]
mov ecx, ebx
mov rdx, r14
mov r8d, esi
mov r9d, edi
call fcn.1400abf80
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rbx + r15]
add cl, byte [rax]
mov byte [rbx + r12], cl
lea eax, [rbx + 1]
cmp eax, 0xe
jg 0x1400ab76d
inc rbx
jmp 0x1400ab740
mov al, 0x87
xchg byte [0x14055036f], al
lea rax, [0x140550360]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret