Function at 0x1400ad150
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, edx
test ecx, ecx
je 0x1400ad219
mov edi, 0xffffe72c
mov ebx, 0x4c3d38bd
mov bpl, 1
nop word [rax + rax]
mov eax, dword [0x1404e44b8]
mov ecx, dword [0x1404e52a8]
add eax, ecx
add eax, 0x99d45568
cdqe
add rax, qword [0x1404e44f8]
mov ecx, 0xd96f4c69
call qword [case.0x140119ecb.0]
test al, 1
je 0x1400ad1b6
mov eax, dword [0x14055ee04]
cmp eax, 0x16
jle 0x1400ad1de
mov eax, dword [0x1404e44a0]
add eax, edi
cdqe
add rax, qword [0x1404e4500]
mov edx, dword [0x1404e52a8]
add edx, ebx
mov ecx, esi
call qword [case.0x140119ecb.0]
test bpl, bpl
je 0x1400ad180
jmp 0x1400ad1ab
test esi, esi
je 0x1400ad385
movzx eax, byte [0x1404e4321]
cmp al, 0x11
je 0x1400ad521
mov cl, 0x43
nop word [rax + rax]
mov al, 0xd2
lock cmpxchg byte [0x1404e4321], cl
je 0x1400ad4c9
cmp al, 0x11
jne 0x1400ad200
jmp 0x1400ad521
mov eax, 0x8882fc9c
add eax, dword [0x1404e449c]
mov ecx, eax
xor ecx, 0x777cea90
and eax, 0x777cea90
lea eax, [rcx + rax*2]
cdqe
add rax, qword [0x1404e44d8]
mov ecx, esi
mov edx, 0x83bc728e
call qword [case.0x140119ecb.0]
test al, 1
je 0x1400ad49a
movzx eax, byte [0x1404e4275]
cmp al, 0xca
je 0x1400ad78d
mov bl, 0xa9
lea rsi, [rsp + 0x30]
mov edi, 0x99d46e3d
lea rax, [fcn.1400ad150]
lea ebp, [rax + rax]
add ebp, 0xc80
mov r14d, ebp
not r14d
nop word cs:[rax + rax]
mov eax, dword [0x14055ee00]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1400ad2e0
nop word cs:[rax + rax]
mov al, 0xfa
lock cmpxchg byte [0x1404e4275], bl
sete cl
mov edx, dword [0x14055ee00]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1400ad370
nop word cs:[rax + rax]
mov eax, dword [0x1404e44a4]
sub eax, dword [0x1404e52a8]
add eax, 0x662b78f0
cdqe
add rax, qword [0x1404e4518]
mov rcx, rsi
mov edx, 0x7b57ec40
call qword [case.0x140119ecb.0]
movzx ecx, byte [rsp + 0x30]
movzx edx, byte [rsp + 0x31]
mov eax, dword [0x1404e4490]
sub eax, dword [0x1404e52a8]
add eax, 0x662b78f0
cdqe
add rax, qword [0x1404e4530]
mov r8d, 0x8fa5c56
call qword [case.0x140119ecb.0]
mov eax, dword [0x1404e52a8]
add eax, edi
mov ecx, r14d
and ecx, eax
not eax
mov edx, ebp
and edx, eax
or edx, ecx
xor eax, r14d
not eax
and eax, r14d
or eax, edx
cmp eax, 0xffffffff
jne 0x1400ad2e0
jmp 0x1400ad2b0
test cl, cl
jne 0x1400ad52d
cmp al, 0xca
jne 0x1400ad290
jmp 0x1400ad78d
movzx eax, byte [0x1404e446f]
nop dword [rax]
cmp al, 0x87
je 0x1400ad48e
movzx ecx, byte [0x1404e52ac]
mov edx, ecx
xor dl, 0x45
mov eax, ecx
and al, 0x45
add al, al
add al, dl
add cl, 0x5a
mov edx, ecx
xor dl, 0x28
and cl, 0x28
add cl, cl
add cl, dl
lock cmpxchg byte [0x1404e446f], cl
jne 0x1400ad390
xor edi, edi
mov ebx, 0xffffe72c
lea rsi, [rsp + 0x30]
lea r14, [0x1404e4460]
lea r15, [0x140420860]
mov ebp, 0x99d46e4b
nop word cs:[rax + rax]
mov eax, dword [0x1404e4494]
add eax, ebx
cdqe
add rax, qword [0x1404e4520]
mov ecx, edi
mov rdx, rsi
mov r8d, 0xa268bcdf
call qword [case.0x140119ecb.0]
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + r14]
movsxd rcx, edi
add al, byte [rcx + r15]
mov byte [rcx + r14], al
mov eax, ecx
xor eax, 1
and ecx, 1
lea edi, [rax + rcx*2]
mov eax, dword [0x1404e52a8]
add eax, ebp
cmp edi, eax
jl 0x1400ad3f0
mov eax, dword [0x14055ee04]
mov esi, 0xffffe72c
nop dword [rax]
mov ecx, dword [0x14055ee04]
mov eax, dword [0x1404e4498]
add eax, esi
cdqe
add rax, qword [0x1404e4510]
mov edx, 0x9f10af6a
call qword [case.0x140119ecb.0]
test al, 1
je 0x1400ad450
movzx eax, byte [0x1404e52ac]
mov ecx, eax
xor cl, 0x17
and al, 0x17
add al, al
add al, cl
xchg byte [0x1404e446f], al
lea rax, [0x1404e4460]
jmp 0x1400ad7ac
movzx eax, byte [0x1404e4389]
cmp al, 0x3b
je 0x1400ad7a5
mov cl, 0x9c
nop dword [rax + rax]
mov al, 0x4b
lock cmpxchg byte [0x1404e4389], cl
je 0x1400ad6f3
cmp al, 0x3b
jne 0x1400ad4b0
jmp 0x1400ad7a5
xor r8d, r8d
lea rax, [0x1404e4310]
lea rcx, [0x140420710]
mov edx, 0x99d46e3d
nop
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
mov r10d, r9d
xor r10b, r9b
not r10b
and r10b, byte [r8 + rax]
xor r10b, r9b
mov byte [r8 + rax], r10b
mov r9d, dword [0x1404e52a8]
add r9d, edx
mov r10d, r8d
xor r10d, r9d
and r9d, r8d
lea r8d, [r10 + r9*2]
cmp r8d, 0x11
jl 0x1400ad4e0
mov al, 0x11
xchg byte [0x1404e4321], al
lea rax, [0x1404e4310]
jmp 0x1400ad7ac
xor ebp, ebp
lea rsi, [rsp + 0x2f]
lea rdi, [rsp + 0x30]
lea r14, [0x140420670]
mov r15d, 0xffffe72c
lea r12, [0x1404e4260]
mov r13d, 0xd7e3aeac
jmp 0x1400ad56b
test byte [rsp + 0x2f], 1
jne 0x1400ad785
mov eax, dword [0x14055ee04]
movsxd rbx, ebp
cmp eax, 0x12
jg 0x1400ad630
nop dword [rax]
mov eax, dword [0x1404e44a8]
sub eax, dword [0x1404e52a8]
add eax, 0x662b78f0
cdqe
add rax, qword [0x1404e4508]
mov dword [rsp + 0x20], 0xf90f8611
mov rcx, rbx
mov edx, ebx
mov r8, rsi
mov r9, rdi
call qword [case.0x140119ecb.0]
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + r14]
mov edx, eax
xor dl, al
not dl
and dl, byte [rsp + 0x2f]
xor dl, al
mov eax, dword [0x1404e44c4]
add eax, r15d
cdqe
add rax, qword [0x1404e4528]
mov ecx, ebx
mov r8, rdi
mov r9d, 0x1598a7c3
call qword [case.0x140119ecb.0]
mov ebp, dword [rsp + 0x30]
mov eax, dword [0x1404e44ac]
add eax, r15d
cdqe
add rax, qword [0x1404e44e0]
mov ecx, ebp
mov rdx, rsi
mov r8, rdi
mov r9d, 0x117fbeb5
call qword [case.0x140119ecb.0]
cmp dword [rsp + 0x30], 0x5f
jl 0x1400ad560
nop word cs:[rax + rax]
mov eax, dword [0x1404e44bc]
add eax, r15d
cdqe
add rax, qword [0x1404e44e8]
mov dword [rsp + 0x20], 0x34603789
mov rcx, rbx
mov edx, ebx
mov r8, rsi
mov r9, rdi
call qword [case.0x140119ecb.0]
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsp + 0x2f]
xor edx, edx
sub dl, cl
movzx ecx, byte [rax]
mov eax, edx
xor al, cl
and dl, cl
add dl, dl
add dl, al
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
shl dl, cl
mov eax, edx
sub al, cl
add al, 0xb1
mov r8d, eax
xor r8b, 0x4f
and al, 0x4f
add al, al
add al, r8b
mul cl
mov r8d, edx
sub r8b, al
mov ecx, r8d
neg cl
shl dl, cl
shl dl, cl
add dl, r8b
mov eax, edx
mul cl
xor al, cl
mov byte [rbx + r12], al
mov ebp, dword [0x14055ee00]
mov eax, dword [0x1404e44b4]
add eax, r15d
cdqe
add rax, qword [0x1404e44d0]
mov r8d, dword [0x1404e52a8]
add r8d, r13d
mov ecx, ebp
mov rdx, rdi
call qword [case.0x140119ecb.0]
imul ebp, dword [rsp + 0x30]
test bpl, 1
jne 0x1400ad630
jmp 0x1400ad580
xor esi, esi
lea rbx, [0x1404e4380]
mov ebp, 0xffffe72c
lea rdi, [rsp + 0x30]
mov r14d, 0x99d46e45
nop dword [rax]
movzx r15d, byte [rsi + rbx]
mov eax, dword [0x1404e44c0]
add eax, ebp
cdqe
add rax, qword [0x1404e44f0]
mov ecx, esi
mov rdx, rdi
mov r8d, 0xb1d8cb78
call qword [case.0x140119ecb.0]
movzx eax, byte [rsp + 0x30]
mov edx, eax
xor dl, al
not dl
and dl, r15b
xor dl, al
mov eax, dword [0x1404e44b0]
sub eax, dword [0x1404e52a8]
add eax, 0x662b78f0
cdqe
add rax, qword [0x1404e4538]
mov rcx, rsi
mov r8d, 0x90ebfcba
call qword [case.0x140119ecb.0]
lea eax, [rsi + 1]
mov ecx, dword [0x1404e52a8]
add ecx, r14d
cmp eax, ecx
jge 0x1400ad796
inc rsi
jmp 0x1400ad710
mov al, 0xca
xchg byte [0x1404e4275], al
lea rax, [0x1404e4260]
jmp 0x1400ad7ac
movzx eax, byte [0x1404e52ac]
add al, 0xcb
xchg byte [0x1404e4389], al
lea rax, [0x1404e4380]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret