Function at 0x140157150
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
test ecx, ecx
je 0x140157199
test edx, edx
je 0x14015725d
cmp byte [0x1404dde17], 0
je 0x140157363
mov cl, 0xa1
nop dword [rax]
mov al, 0x4c
lock cmpxchg byte [0x1404dde17], cl
je 0x140157319
test al, al
jne 0x140157180
jmp 0x140157363
mov eax, 0xdc615bd0
nop
mov ecx, dword [0x140531868]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x1404de1e8]
add ecx, eax
cmp r8d, ecx
jne 0x1401571d3
mov ecx, dword [0x140531868]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
je 0x1401571e0
mov ecx, dword [0x14053186c]
cmp ecx, 0x39
jge 0x1401571a0
jmp 0x1401571bf
test edx, edx
je 0x1401572e7
movzx eax, byte [0x1404ddf5e]
nop
cmp al, 0xa2
je 0x14015755b
movzx ecx, byte [0x1404de1f8]
lea eax, [rcx + 0x6d]
mov edx, ecx
xor dl, 0xc8
and cl, 0x48
add cl, cl
add cl, dl
lock cmpxchg byte [0x1404ddf5e], cl
je 0x14015736f
mov ecx, dword [0x140531868]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x140157250
nop dword [rax]
mov ecx, dword [0x140531868]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1401571f0
nop word cs:[rax + rax]
mov ecx, dword [0x14053186c]
cmp ecx, 0x18
jge 0x140157250
jmp 0x140157230
movzx eax, byte [0x1404dde8f]
cmp al, 0xc6
je 0x1401574c8
xor ecx, ecx
mov dl, 0x79
test cl, cl
jne 0x1401572d0
nop word cs:[rax + rax]
mov al, 0x2f
lock cmpxchg byte [0x1404dde8f], dl
sete r8b
mov r9d, dword [0x14053186c]
cmp r9d, 0x4d
jge 0x1401572d0
test r8b, r8b
jne 0x140157398
mov r8d, dword [0x14053186c]
cmp r8d, 0x24
mov r8d, dword [0x140531868]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x1401572af
cmp al, 0xc6
jne 0x140157270
jmp 0x1401574c8
mov al, 0x2f
lock cmpxchg byte [0x1404dde8f], dl
mov eax, dword [0x14053186c]
cmp eax, 0x15
jge 0x1401572d0
jmp 0x140157280
movzx eax, byte [0x1404ddf93]
cmp al, 0x4c
je 0x140157520
mov cl, 0x23
nop dword [rax + rax]
mov al, 0x9c
lock cmpxchg byte [0x1404ddf93], cl
je 0x1401574d1
cmp al, 0x4c
jne 0x140157300
jmp 0x140157520
xor eax, eax
lea rcx, [0x1404dde10]
lea rdx, [0x1404033d0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 6
jg 0x140157348
inc rax
jmp 0x140157330
mov eax, dword [0x14053186c]
nop
mov eax, dword [0x14053186c]
cmp eax, 0x17
jg 0x140157350
xor eax, eax
xchg byte [0x1404dde17], al
lea rax, [0x1404dde10]
jmp 0x140157533
xor eax, eax
lea rcx, [0x1404ddf50]
lea rdx, [0x140403510]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x1401573d6
inc rax
jmp 0x140157380
xor ecx, ecx
mov r8d, 0xdc615bd2
test cl, cl
jne 0x1401573b5
mov eax, dword [0x140531868]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x1401573f4
mov edx, dword [0x140531868]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x1404de1e8]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
jne 0x1401573a0
jmp 0x1401573a4
mov eax, dword [0x14053186c]
mov ecx, 0xdc615bfa
add ecx, dword [0x1404de1e8]
cmp eax, ecx
jl 0x14015758a
jmp 0x140157590
xor edi, edi
mov ebx, 0xdc615bd1
lea rax, [fcn.140157150]
lea ebp, [rax + rax]
add ebp, 0x580
lea r14, [0x1404dde80]
lea r15, [0x140403440]
lea rsi, [0x140157640]
mov eax, dword [0x1404de1e8]
add eax, ebx
xor eax, ebp
not eax
test eax, ebp
jne 0x14015744a
movzx eax, byte [rdi + r15]
xor byte [rdi + r14], al
mov eax, dword [0x140531868]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401574b0
movzx ecx, byte [rdi + r14]
sub cl, byte [0x1404de1f8]
movzx edx, byte [rdi + r15]
mov al, 0xb1
sub al, cl
mul dl
mov r8d, edx
sub r8b, cl
add r8b, 0xb1
sub al, r8b
mov edx, r8d
mov ecx, eax
shl dl, cl
mov eax, r8d
mov ecx, edx
shl al, cl
mov edx, eax
sub dl, r8b
mov r12d, edx
mov ecx, eax
shl r12b, cl
xor r12b, dl
mov ecx, 0x1e
call fcn.14039c114
mov qword [0x140531860], rax
mov rcx, rsi
call fcn.1403bbdc0
mov byte [rdi + r14], r12b
jmp 0x140157430
lea eax, [rdi + 1]
cmp eax, 0xe
jg 0x1401574c0
inc rdi
jmp 0x140157420
mov al, 0xc6
xchg byte [0x1404dde8f], al
lea rax, [0x1404dde80]
jmp 0x140157533
xor edx, edx
lea rax, [0x1404ddf70]
lea rcx, [0x140403530]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x1404de1e8]
add edx, r8d
add edx, 0xdc615bd1
cmp edx, 0x23
jl 0x1401574f0
movzx eax, byte [0x1404de1f8]
add al, 0xfd
xchg byte [0x1404ddf93], al
cmp dword [0x1404de1e8], 0x239ea430
jne 0x140157520
lea rax, [0x1404ddf70]
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov al, 0xa2
xchg byte [0x1404ddf5e], al
jmp 0x14015755b
mov eax, dword [0x14053186c]
cmp eax, 0x47
jl 0x140157575
mov eax, dword [0x140531868]
mov ecx, dword [0x1404de1e8]
neg ecx
add ecx, eax
inc ecx
imul ecx, eax
test cl, 1
jne 0x140157550
cmp dword [0x1404de1e8], 0x239ea430
jne 0x140157550
lea rax, [0x1404ddf50]
jmp 0x140157533
mov al, 1
test al, al
jne 0x140157542
mov eax, 0xdc615c03
nop word cs:[rax + rax]
mov ecx, dword [0x14053186c]
mov edx, dword [0x1404de1e8]
add edx, eax
cmp ecx, edx
jge 0x1401575a0
jmp 0x14015758a