Function at 0x1403ac710
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
test ecx, ecx
je 0x1403ac7c3
test edx, edx
je 0x1403ac81b
movzx eax, byte [0x1405600c6]
movzx ecx, byte [0x140561998]
mov edx, ecx
xor dl, 0x72
and cl, 0x72
add cl, cl
add cl, dl
cmp al, cl
je 0x1403acb9d
lea rsi, [rsp + 0x30]
lea rdi, [rsp + 0x3c]
nop word [rax + rax]
mov eax, dword [0x140561988]
lea r8d, [rax + 0x422edb3f]
mov ecx, eax
xor ecx, 0x3bde437
and eax, 0x3bde437
lea r9d, [rcx + rax*2]
mov rcx, rsi
mov rdx, rdi
call fcn.1403b2000
movzx ebx, byte [rsp + 0x3c]
movzx ecx, byte [rsp + 0x30]
movzx edx, byte [rsp + 0x31]
mov r8d, 0x3746bb3e
mov r9d, 0x52783cf1
call fcn.140178040
test al, 1
jne 0x1403ac899
movzx eax, byte [0x140561998]
add al, 0x72
cmp bl, al
jne 0x1403ac760
jmp 0x1403acb9d
mov ecx, edx
mov edx, 0x7d79075b
mov r8d, 0xbc33bef9
call fcn.1400aa6a0
test al, 1
je 0x1403ac865
movzx eax, byte [0x14055fc5f]
cmp al, 0x84
je 0x1403acabb
mov bl, 0x42
nop
mov al, 0xf8
lock cmpxchg byte [0x14055fc5f], bl
je 0x1403aca35
mov ecx, eax
mov edx, 0xe9a8451e
mov r8d, 0xa8bf9472
call fcn.1403b14c0
test al, 1
je 0x1403ac7f0
jmp 0x1403acabb
movzx eax, byte [0x14055f91a]
cmp al, 0xfc
je 0x1403aca29
mov bl, 0x61
nop dword [rax]
mov al, 0xb0
lock cmpxchg byte [0x14055f91a], bl
je 0x1403ac8ea
mov r8d, dword [0x140561988]
lea edx, [r8 - 0x316dd642]
add r8d, 0x9c227748
mov ecx, eax
call fcn.1403b2b50
test al, 1
je 0x1403ac830
jmp 0x1403aca29
movzx eax, byte [0x14055f87a]
cmp al, 0x5b
je 0x1403acb87
mov cl, 4
nop word cs:[rax + rax]
mov al, 0xb3
lock cmpxchg byte [0x14055f87a], cl
je 0x1403acac7
cmp al, 0x5b
jne 0x1403ac880
jmp 0x1403acb87
xor eax, eax
lea rcx, [0x1405600c0]
lea rdx, [0x140460610]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 5
jg 0x1403ac8c8
inc rax
jmp 0x1403ac8b0
mov eax, dword [0x140561988]
mov ecx, eax
xor ecx, 0xeda651b9
and eax, 0x6da651b9
add eax, eax
add eax, ecx
je 0x1403acba6
jmp 0x1403acbb1
xor esi, esi
lea r14, [0x14055f8f0]
lea r15, [0x14045fec0]
lea rdi, [rsp + 0x30]
lea rbx, [rsp + 0x3c]
jmp 0x1403ac91b
inc esi
cmp esi, 0x2a
jge 0x1403aca12
mov ecx, dword [0x140579080]
mov r8d, dword [0x140561988]
mov eax, r8d
xor eax, 0xeda651ba
mov edx, r8d
and edx, 0x6da651ba
lea edx, [rax + rdx*2]
mov eax, ecx
sub eax, edx
imul eax, ecx
add r8d, 0xeda651bb
xor edx, edx
div r8d
movsxd r12, esi
test edx, edx
jne 0x1403ac980
nop word cs:[rax + rax]
movzx eax, byte [r12 + r15]
mov ecx, eax
xor cl, al
not cl
and cl, byte [r12 + r14]
xor cl, al
mov byte [r12 + r14], cl
mov eax, dword [0x140579084]
cmp eax, 0x58
jl 0x1403ac910
mov ecx, esi
mov rdx, rdi
mov r8d, 0x62fcb5fb
mov r9d, 0xf2b7c7ac
call fcn.1400aa120
mov rcx, qword [rsp + 0x30]
mov rdx, rdi
mov r8d, 0x3e1817e0
mov r9d, 0x214c39ac
call fcn.1403b1f10
movzx ebp, byte [rsp + 0x30]
mov ecx, esi
mov rdx, rdi
mov r8d, 0x743d9bf8
mov r9d, 0x59a723e2
call fcn.1403b2b90
movzx edx, byte [rsp + 0x30]
sub bpl, dl
mov eax, ebp
mul dl
mov ecx, eax
sub al, dl
mul dl
xor al, cl
mov byte [r12 + r14], al
lea ecx, [rsi - 1]
mov dword [rsp + 0x20], 0xc49da92f
mov rdx, rbx
mov r8, rdi
mov r9d, 0x8b147d13
call fcn.1403b19a0
mov eax, dword [0x140579084]
cmp eax, 0x4a
jge 0x1403ac980
jmp 0x1403ac960
mov edx, dword [0x140561988]
lea ecx, [rdx + 0x5f0543b9]
add edx, 0xa64369f2
call fcn.1403b2920
lea rax, [0x14055f8f0]
jmp 0x1403acb8e
xor edi, edi
lea rsi, [rsp + 0x30]
lea rbx, [0x14055fc40]
lea r14, [0x1404601f0]
nop word [rax + rax]
mov ecx, edi
mov rdx, rsi
mov r8d, 0x3aa6fd5d
mov r9d, 0x736ca0bb
call fcn.1400aa120
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax + rbx]
movsxd rdi, edi
movzx edx, byte [rdi + r14]
mov dword [rsp + 0x20], 0x2ed5af64
mov r8d, edi
mov r9d, 0xde86fd03
call fcn.1403b17d0
mov ecx, edi
mov rdx, rsi
mov r8d, 0x1f135d29
mov r9d, 0x373867c1
call fcn.14014e6e0
mov edi, dword [rsp + 0x30]
cmp edi, 0x1f
jl 0x1403aca50
mov ecx, 0x279c9660
mov edx, 0x8c0160be
call fcn.1403b2460
lea rax, [0x14055fc40]
jmp 0x1403acb8e
xor ecx, ecx
lea rdi, [0x14055f870]
lea rbx, [0x14045fe40]
lea rsi, [rsp + 0x30]
nop dword [rax]
movsxd r8, ecx
movzx ecx, byte [r8 + rdi]
add cl, byte [r8 + rbx]
lea rdx, [rdi + r8]
mov eax, dword [0x140561988]
lea r9d, [rax - 0x403dfef3]
add eax, 0xfcc16cff
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r9d
mov r9, rsi
call fcn.1403b20f0
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x1403acae0
mov esi, 0xeda6521c
xor edi, edi
mov bl, 1
nop word cs:[rax + rax]
mov eax, dword [0x140579084]
mov ecx, dword [0x140561988]
add ecx, esi
cmp eax, ecx
jl 0x1403acb63
nop word cs:[rax + rax]
mov ecx, 0x67c76370
mov edx, 0x57bcf7b4
call fcn.1403b2040
test bl, bl
je 0x1403acb30
mov al, 0x5b
xchg byte [0x14055f87a], al
mov edx, dword [0x140561988]
lea ecx, [rdx - 0x43aa5bfb]
add edx, 0xe5bcefbe
call fcn.14008b8b0
test dil, dil
jne 0x1403acb50
lea rax, [0x14055f870]
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rax, [0x1405600c0]
jmp 0x1403acb8e
mov eax, dword [0x140579084]
cmp eax, 0xc
jl 0x1403acbf1
mov eax, 0xeda651ba
lea rcx, [fcn.1403ac710]
add ecx, ecx
add ecx, 0xe60
mov edx, ecx
not edx
nop dword [rax]
mov r8d, dword [0x140561988]
add r8d, eax
mov r9d, ecx
xor r9d, r8d
not r8d
and r8d, edx
or r8d, r9d
cmp r8d, 0xffffffff
jne 0x1403acbd0
jmp 0x1403acba6
mov al, 0x84
xchg byte [0x1405600c6], al
jmp 0x1403acb9d