Function at 0x140177970
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov r8d, edx
test ecx, ecx
je 0x1401779e9
mov eax, dword [0x140693da0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
nop dword [rax]
mov ecx, dword [0x140693da0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x3a8ab2b3
add ecx, dword [0x140610ec8]
xor edx, edx
div ecx
test edx, edx
jne 0x140177990
test r8d, r8d
je 0x140177afd
movzx eax, byte [0x140610d12]
cmp al, 0xd0
je 0x140177cd3
mov cl, 0x48
nop dword [rax]
mov al, 0x56
lock cmpxchg byte [0x140610d12], cl
je 0x140177b7e
cmp al, 0xd0
jne 0x1401779d0
jmp 0x140177cd3
test r8d, r8d
je 0x140177b39
movzx eax, byte [0x140610cdf]
cmp al, 0xd7
je 0x140177dba
lea rax, [fcn.140177970]
lea ecx, [rax + rax]
add ecx, 0x3fc0
mov edx, ecx
not edx
mov r8b, 0x27
nop dword [rax + rax]
mov eax, dword [0x140610ec8]
mov r9d, eax
not r9d
mov r10d, eax
and r10d, 0xc5754d4d
mov r11d, r9d
and r11d, 0x3a8ab2b2
or r11d, r10d
xor eax, 0x3a8ab2b2
and r9d, 0x45754d4d
or r9d, eax
not r9d
lea eax, [r11 + r9*2]
mov r9d, eax
not r9d
mov r10d, edx
and r10d, eax
mov r11d, ecx
xor r11d, r9d
or r11d, r10d
not r11d
or r11d, r10d
and eax, ecx
and r9d, edx
or r9d, eax
and r9d, edx
or r9d, r11d
cmp r9d, 0xffffffff
jne 0x140177af0
nop dword [rax + rax]
movzx r9d, byte [0x140610ed8]
lea eax, [r9 - 0x64]
add r9b, 0xac
lock cmpxchg byte [0x140610cdf], r9b
sete r9b
mov r10d, dword [0x140610ec8]
mov r11d, r10d
xor r11d, 0x3a8ab2b1
and r10d, 0x3a8ab2b1
add r10d, r10d
add r10d, r11d
jne 0x140177af0
test r9b, r9b
jne 0x140177cf7
cmp al, 0xd7
jne 0x140177a20
jmp 0x140177dba
mov al, 0x17
lock cmpxchg byte [0x140610cdf], r8b
jmp 0x140177a90
movzx eax, byte [0x140610d7d]
movzx ecx, byte [0x140610ed8]
add cl, 3
cmp al, cl
je 0x140177e99
mov cl, 0xa4
nop dword [rax + rax]
mov al, 0xa2
lock cmpxchg byte [0x140610d7d], cl
je 0x140177d51
cmp al, 0x7e
jne 0x140177b20
jmp 0x140177e99
movzx eax, byte [0x140610d4d]
cmp al, 0x1e
je 0x140177e2b
nop dword [rax + rax]
movzx ecx, byte [0x140610ed8]
lea eax, [rcx + 0x3e]
add cl, 0x1a
lock cmpxchg byte [0x140610d4d], cl
je 0x140177dc6
movzx ecx, byte [0x140610ed8]
add cl, 0xa3
cmp al, cl
jne 0x140177b50
jmp 0x140177e2b
xor eax, eax
mov ecx, 0x3a8ab2b1
nop word cs:[rax + rax]
test al, al
jne 0x140177b9f
mov edx, dword [0x140693da4]
cmp edx, 0x45
jle 0x140177bc0
mov edx, dword [0x140693da0]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x140610ec8]
add edx, ecx
cmp r8d, edx
jne 0x140177b90
jmp 0x140177b94
xor r8d, r8d
lea r9, [0x140610d10]
lea r10, [0x140531ad0]
jmp 0x140177bf8
mov eax, r8d
xor eax, 1
and r8d, 1
lea r8d, [rax + r8*2]
cmp r8d, 2
jge 0x140177ccb
mov eax, dword [0x140693da4]
movsxd r11, r8d
cmp eax, 0xa
jg 0x140177c24
nop word cs:[rax + rax]
movzx eax, byte [r11 + r10]
add byte [r11 + r9], al
mov eax, dword [0x140693da4]
cmp eax, 0x1d
jle 0x140177be0
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
movzx edx, byte [0x140610ed8]
lea esi, [rdx - 0x3f]
mov ebx, esi
xor bl, 0xec
and sil, 0x6c
add sil, sil
add sil, bl
sub sil, al
sub al, cl
mul cl
add sil, 0x14
mov ebx, esi
not bl
mov ecx, ebx
and cl, 0xc4
mov edi, esi
and dil, 0x3b
or dil, cl
xor sil, 0x44
and bl, 0x3b
or bl, sil
not bl
add bl, bl
add bl, dil
mov esi, ebx
neg sil
mov ecx, esi
sub cl, al
add cl, dl
add cl, 0x85
mov eax, ecx
mul sil
sub bl, cl
add bl, al
mov edx, ebx
mov ecx, eax
shl dl, cl
mov ecx, edx
sub cl, bl
add cl, 0xa3
mov eax, ecx
xor al, 0x22
and al, cl
xor cl, 0x5d
add al, al
mov ebx, ecx
xor bl, al
and al, cl
add al, al
add al, bl
mov ebx, eax
mov ecx, edx
shl bl, cl
sub al, bl
mul bl
sub al, bl
mul bl
sub al, bl
mul bl
add al, bl
mov byte [r11 + r9], al
jmp 0x140177c10
mov al, 0xd0
xchg byte [0x140610d12], al
mov eax, dword [0x140693da4]
nop dword [rax]
mov eax, dword [0x140693da4]
cmp eax, 0x52
jg 0x140177ce0
lea rax, [0x140610d10]
jmp 0x140177e61
xor eax, eax
lea rcx, [0x140610cd0]
lea rdx, [0x140531a90]
nop word [rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r9d
xor r10b, r8b
not r8b
mov r11d, r8d
xor r11b, r9b
not r10b
and r8b, r9b
or r8b, r10b
not r8b
or r11b, r8b
not r11b
or r11b, r8b
mov byte [rax + rcx], r11b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x140177db2
inc rax
jmp 0x140177d10
xor edx, edx
lea rax, [0x140610d70]
lea rcx, [0x140531b30]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x140177d70
mov al, 1
test al, al
je 0x140177e69
jmp 0x140177e65
mov al, 0xd7
xchg byte [0x140610cdf], al
lea rax, [0x140610cd0]
jmp 0x140177e61
xor eax, eax
lea rcx, [0x140610d40]
lea rdx, [0x140531b00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add r8b, byte [rax + rcx]
add r8b, 0x3a
mov r9d, r8d
xor r9b, 0xc6
and r8b, 0x46
add r8b, r8b
add r8b, r9b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x140177e11
inc rax
jmp 0x140177de0
mov al, 0x1e
xchg byte [0x140610d4d], al
jmp 0x140177e2b
mov eax, dword [0x140693da4]
cmp eax, 0x2f
jl 0x140177e3c
mov eax, dword [0x140693da0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140177e20
mov eax, dword [0x140693da0]
mov ecx, dword [0x140610ec8]
neg ecx
add ecx, eax
add ecx, 0x15563b1a
imul ecx, eax
test cl, 1
jne 0x140177e20
lea rax, [0x140610d40]
pop rbx
pop rdi
pop rsi
ret
test al, al
jne 0x140177e91
mov ecx, 0x3a8ab2b1
nop
mov edx, dword [0x140693da0]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x140610ec8]
add edx, ecx
cmp r8d, edx
jne 0x140177e70
jmp 0x140177e65
mov al, 0x7e
xchg byte [0x140610d7d], al
mov eax, 0x3a8ab2b2
xor ecx, ecx
mov dl, 1
nop word cs:[rax + rax]
mov r8d, dword [0x140693da0]
mov r9d, dword [0x140610ec8]
add r9d, eax
not r9d
sub r9d, r8d
inc r9d
imul r9d, r8d
test r9b, 1
jne 0x140177ed8
test cl, cl
je 0x140177ede
test dl, dl
je 0x140177eb0
jmp 0x140177ed4
lea rax, [0x140610d70]
jmp 0x140177e61