Function at 0x140159140
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov esi, edx
mov eax, dword [0x14058ede4]
mov edx, 0xa5c3332b
add edx, dword [0x1405291a4]
cmp eax, edx
nop dword [rax]
mov eax, dword [0x14058ede0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x140159160
test ecx, ecx
je 0x14015924c
test esi, esi
je 0x140159391
nop word cs:[rax + rax]
cmp dword [0x1405291a4], 0x5a3ccce5
je 0x1401591ae
movzx eax, byte [0x140527cf7]
mov eax, dword [0x14058ede4]
cmp eax, 0x51
jge 0x140159190
movzx eax, byte [0x140527cf7]
mov ecx, dword [0x14058ede4]
cmp ecx, 0x42
jg 0x14015919c
cmp al, 0x2b
je 0x1401594b5
mov ecx, 0xa5c3335e
mov dl, 0xb
nop
mov eax, dword [0x14058ede4]
mov r8d, dword [0x1405291a4]
add r8d, ecx
cmp eax, r8d
jge 0x140159240
nop word cs:[rax + rax]
mov al, 0x88
lock cmpxchg byte [0x140527cf7], dl
sete r8b
mov r9d, dword [0x14058ede0]
mov r10d, dword [0x1405291a4]
mov r11d, r9d
sub r11d, r10d
add r11d, 0x5a3ccce4
imul r11d, r9d
and r11d, 1
add r10d, 0xa5c3331b
cmp r11d, r10d
jne 0x140159240
test r8b, r8b
jne 0x1401593fc
cmp al, 0x2b
jne 0x1401591d0
jmp 0x1401594b5
mov al, 0x88
lock cmpxchg byte [0x140527cf7], dl
jmp 0x1401591f0
mov ebx, 0xa5c3331d
lea rdi, [0x140159630]
nop dword [rax + rax]
mov eax, dword [0x14058ede0]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x14015928d
mov ecx, dword [0x14058ede0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1405291a4]
add ecx, ebx
xor edx, edx
div ecx
test edx, edx
je 0x1401592b9
mov ecx, 0x13
call fcn.1403e8964
mov qword [0x14058edd8], rax
mov rcx, rdi
call fcn.140408a64
mov eax, dword [0x14058ede0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140159260
jmp 0x140159271
test esi, esi
jne 0x1401592d7
xor eax, eax
test al, al
je 0x140159529
jmp 0x140159547
movzx eax, byte [0x140527d6d]
mov eax, dword [0x14058ede0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401592d0
movzx eax, byte [0x140527d6d]
mov ecx, dword [0x14058ede0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xa5c3331b
add ecx, dword [0x1405291a4]
cmp edx, ecx
jne 0x1401592d0
cmp al, 0xb7
je 0x140159509
xor ecx, ecx
mov dl, 0x12
lea rax, [fcn.140159140]
lea r8d, [rax + rax]
add r8d, 0x2ba0
mov r9d, r8d
not r9d
nop word cs:[rax + rax]
test cl, cl
jne 0x140159380
nop word cs:[rax + rax]
mov al, 0x54
lock cmpxchg byte [0x140527d6d], dl
sete r10b
mov r11d, dword [0x14058ede4]
cmp r11d, 0x1e
jge 0x140159380
test r10b, r10b
jne 0x1401594c1
cmp al, 0xb7
jne 0x140159340
jmp 0x140159509
mov al, 0x54
lock cmpxchg byte [0x140527d6d], dl
test r9d, r8d
jne 0x140159380
jmp 0x140159350
movzx eax, byte [0x140527b36]
nop dword [rax + rax]
cmp al, 0x1a
je 0x140159612
movzx ecx, byte [0x1405291a0]
mov edx, ecx
xor dl, 0x28
mov eax, ecx
and al, 0x28
add al, al
add al, dl
add cl, 0x57
lock cmpxchg byte [0x140527b36], cl
jne 0x1401593a0
xor eax, eax
lea rcx, [0x140527b20]
lea rdx, [0x1404507f0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x15
jg 0x140159515
inc rax
jmp 0x1401593e0
xor edx, edx
lea r8, [0x140527cf0]
lea r9, [0x140450990]
mov r10d, 0xa5c33322
jmp 0x14015942a
inc edx
cmp edx, eax
jge 0x1401594ad
mov eax, dword [0x14058ede0]
lea ecx, [rax + 1]
imul ecx, eax
movsxd r11, edx
test cl, 1
jne 0x140159470
nop
movzx eax, byte [r11 + r9]
mov ecx, eax
xor cl, al
not cl
and cl, byte [r11 + r8]
xor cl, al
mov byte [r11 + r8], cl
mov eax, dword [0x1405291a4]
add eax, r10d
mov ecx, dword [0x14058ede0]
lea esi, [rcx - 1]
imul esi, ecx
test sil, 1
je 0x140159420
movzx eax, byte [r11 + r8]
movzx ecx, byte [r11 + r9]
sub al, cl
mov ebx, eax
xor bl, cl
and cl, al
add cl, cl
add cl, bl
mov ebx, eax
xor bl, cl
and al, cl
add al, al
add al, bl
sub al, cl
mul cl
sub al, cl
mul cl
shl al, cl
xor al, cl
mov byte [r11 + r8], al
mov eax, dword [0x14058ede4]
cmp eax, 0x50
jge 0x140159470
jmp 0x140159440
mov al, 0x2b
xchg byte [0x140527cf7], al
lea rax, [0x140527cf0]
jmp 0x1401595e7
xor edx, edx
lea rax, [0x140527d60]
lea rcx, [0x140450a00]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x1405291a4]
add edx, r8d
add edx, 0xa5c3331c
cmp edx, 0xd
jl 0x1401594e0
mov al, 0xb7
xchg byte [0x140527d6d], al
lea rax, [0x140527d60]
jmp 0x1401595e7
mov eax, dword [0x14058ede4]
cmp eax, 0x44
jl 0x1401595ef
jmp 0x140159608
movzx eax, byte [0x140527bb3]
lea rcx, [fcn.140159140]
add ecx, ecx
add ecx, 0x44c0
mov edx, ecx
not edx
test edx, ecx
je 0x140159550
movzx eax, byte [0x140527bb3]
jmp 0x140159529
cmp al, 0xa9
je 0x1401595e0
mov cl, 0xf4
nop word [rax + rax]
mov al, 0x24
lock cmpxchg byte [0x140527bb3], cl
je 0x1401595a2
mov edx, dword [0x14058ede4]
cmp edx, 0x2f
mov edx, dword [0x14058ede4]
mov r8d, dword [0x1405291a4]
mov r9d, r8d
xor r9d, 0xa5c33348
and r8d, 0x25c33348
lea r8d, [r9 + r8*2]
cmp edx, r8d
jge 0x140159575
cmp al, 0xa9
jne 0x140159560
jmp 0x1401595e0
xor eax, eax
lea rcx, [0x140527bb0]
lea rdx, [0x140450870]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 2
jg 0x1401595d8
inc rax
jmp 0x1401595c0
mov al, 0xa9
xchg byte [0x140527bb3], al
lea rax, [0x140527bb0]
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov al, 0x1a
xchg byte [0x140527b36], al
mov eax, dword [0x14058ede0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140159612
mov al, 0x1a
xchg byte [0x140527b36], al
jmp 0x1401595ef
xor eax, eax
test al, al
jne 0x14015961e
mov al, 1
test al, al
jne 0x140159626
mov al, 1
test al, al
je 0x140159620
jmp 0x140159618
lea rax, [0x140527b20]
jmp 0x1401595e7