Function at 0x140118ca0
Capabilities:
Encode data using xor

Disassembly:
push rsi
test ecx, ecx
je 0x140118d1c
test edx, edx
je 0x140118d59
movzx eax, byte [0x140501e0b]
movzx ecx, byte [0x140501ff8]
add cl, 0x37
cmp al, cl
je 0x140118df0
mov cl, 0xfb
jmp 0x140118cdb
add dl, 0x37
cmp al, dl
je 0x140118df0
mov al, 0x2c
lock cmpxchg byte [0x140501e0b], cl
je 0x140118db9
nop dword [rax + rax]
mov edx, dword [0x14056411c]
cmp edx, 0x2d
jg 0x140118d0f
movzx edx, byte [0x140501ff8]
mov r8d, dword [0x14056411c]
cmp r8d, 0x36
jle 0x140118cd0
mov edx, dword [0x14056411c]
cmp edx, 0x57
jge 0x140118cf0
jmp 0x140118cfb
test edx, edx
je 0x140118d80
movzx eax, byte [0x140501c63]
cmp al, 0x7c
je 0x140118e8e
mov cl, 0x80
nop word cs:[rax + rax]
mov al, 0x82
lock cmpxchg byte [0x140501c63], cl
je 0x140118df9
cmp al, 0x7c
jne 0x140118d40
jmp 0x140118e8e
mov eax, dword [0x140564118]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x2fb19104
add eax, dword [0x140501ffc]
cmp ecx, eax
je 0x140118f71
jmp 0x140118f89
movzx eax, byte [0x140501d83]
movzx ecx, byte [0x140501ff8]
add cl, 0xd9
cmp al, cl
je 0x140118f68
mov cl, 0xfd
nop dword [rax + rax]
mov al, 0xe9
lock cmpxchg byte [0x140501d83], cl
je 0x140118e97
cmp al, 0x72
jne 0x140118da0
jmp 0x140118f68
xor eax, eax
lea rcx, [0x140501e00]
lea rdx, [0x140429be0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xa
jg 0x140118de8
inc rax
jmp 0x140118dd0
mov al, 0xd0
xchg byte [0x140501e0b], al
lea rax, [0x140501e00]
pop rsi
ret
xor edx, edx
lea rax, [0x140501c60]
lea rcx, [0x140429a60]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x140501ffc]
add edx, r8d
add edx, 0x2fb19105
add r8d, 0x2fb19107
cmp edx, r8d
jl 0x140118e10
mov eax, 0x2fb19105
lea rcx, [fcn.140118ca0]
add ecx, ecx
add ecx, 0x4520
nop dword [rax]
mov edx, dword [0x140564118]
mov r8d, dword [0x140501ffc]
add r8d, edx
inc r8d
imul r8d, edx
test r8b, 1
jne 0x140118e78
mov edx, dword [0x14056411c]
cmp edx, 0x11
jle 0x140118e86
mov edx, dword [0x140501ffc]
add edx, eax
test ecx, edx
jne 0x140118e50
jmp 0x140118e6d
mov al, 0x7c
xchg byte [0x140501c63], al
lea rax, [0x140501c60]
pop rsi
ret
xor r9d, r9d
lea r10, [0x140501d60]
lea r11, [0x140429b40]
jmp 0x140118ec4
add r9d, eax
add r9d, 0x2fb19105
cmp r9d, 0x23
jge 0x140118f60
mov eax, dword [0x140564118]
lea ecx, [rax - 1]
imul ecx, eax
movsxd rsi, r9d
test cl, 1
jne 0x140118f10
nop dword [rax + rax]
movzx eax, byte [rsi + r11]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rsi + r10]
xor cl, al
mov byte [rsi + r10], cl
mov eax, dword [0x140501ffc]
mov ecx, dword [0x14056411c]
cmp ecx, 0x1e
jl 0x140118eb0
nop word cs:[rax + rax]
movzx eax, byte [rsi + r10]
movzx ecx, byte [rsi + r11]
sub al, cl
mul cl
mov edx, eax
sub al, cl
mul cl
mov ecx, eax
shl dl, cl
mov r8d, eax
sub r8b, dl
movzx eax, byte [0x140501ff8]
sub al, r8b
shl r8b, cl
add al, 0x67
mul r8b
mov ecx, r8d
shl al, cl
xor cl, r8b
not cl
and cl, al
xor cl, r8b
mov byte [rsi + r10], cl
mov eax, dword [0x14056411c]
cmp eax, 0x10
jge 0x140118f10
jmp 0x140118ee0
mov al, 0x72
xchg byte [0x140501d83], al
lea rax, [0x140501d60]
pop rsi
ret
movzx eax, byte [0x140501d53]
mov ecx, dword [0x140564118]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
je 0x140118f9d
mov al, 1
nop dword [rax + rax]
movzx ecx, byte [0x140501d53]
test al, al
je 0x140118f90
jmp 0x140118f71
cmp al, 0x90
je 0x14011903b
mov cl, 0xc2
nop word [rax + rax]
mov al, 0x7a
lock cmpxchg byte [0x140501d53], cl
je 0x140118fc2
cmp al, 0x90
jne 0x140118fb0
jmp 0x14011903b
xor edx, edx
lea rax, [0x140501d50]
lea rcx, [0x140429b30]
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, dword [0x140501ffc]
add edx, r8d
add edx, 0x2fb19105
cmp edx, 3
jl 0x140118fe0
xor eax, eax
nop word [rax + rax]
test al, al
je 0x14011902f
mov ecx, dword [0x14056411c]
cmp ecx, 0x44
jge 0x140119020
test al, al
jne 0x140119024
mov al, 0x90
xchg byte [0x140501d53], al
lea rax, [0x140501d50]
pop rsi
ret