Function at 0x1403125a0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test ecx, ecx
je 0x1403125d9
test edx, edx
je 0x140312616
movzx eax, byte [0x1405400a3]
cmp al, 0xca
je 0x1403127ab
mov cl, 0x7e
nop dword [rax + rax]
mov al, 0xf8
lock cmpxchg byte [0x1405400a3], cl
je 0x140312709
cmp al, 0xca
jne 0x1403125c0
jmp 0x1403127ab
mov eax, 0x50108422
add eax, dword [0x140540528]
cmp edx, eax
jne 0x1403126ca
mov eax, dword [0x140566b98]
mov ecx, dword [0x140540528]
lea edx, [rax + rcx]
inc edx
imul edx, eax
and edx, 1
add ecx, 0x50108422
cmp edx, ecx
je 0x140312815
jmp 0x140312828
movzx eax, byte [0x14054010d]
nop dword [rax]
cmp al, 0xe6
je 0x1403126be
movzx ecx, byte [0x140540538]
lea eax, [rcx - 2]
add cl, 0x5d
lock cmpxchg byte [0x14054010d], cl
jne 0x140312620
xor eax, eax
lea rcx, [0x140540100]
lea rdx, [0x140449e90]
mov r8d, 0x5010842f
nop word cs:[rax + rax]
movzx r9d, byte [rax + rdx]
xor byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x140540528]
add r10d, r8d
cmp r9d, r10d
jge 0x140312690
inc rax
jmp 0x140312660
mov eax, dword [0x140566b98]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403126ab
cmp qword [0x140564588], 0
jne 0x140312690
mov eax, dword [0x140566b9c]
cmp eax, 0x1d
jg 0x1403126a1
mov al, 0xe6
xchg byte [0x14054010d], al
lea rax, [0x140540100]
jmp 0x140312a40
movzx eax, byte [0x14053fe33]
movzx ecx, byte [0x140540538]
add cl, 0x7d
cmp al, cl
je 0x140312809
mov cl, 0xfb
nop word cs:[rax + rax]
mov al, 0x4a
lock cmpxchg byte [0x14053fe33], cl
je 0x1403127b7
cmp al, 0x33
jne 0x1403126f0
jmp 0x140312809
xor eax, eax
nop dword [rax + rax]
mov ecx, dword [0x140566b9c]
cmp ecx, 0x28
jg 0x14031271f
test al, al
je 0x14031272c
mov ecx, dword [0x140566b9c]
cmp ecx, 0x31
jge 0x140312710
jmp 0x14031271b
xor eax, eax
lea rcx, [0x1405400a0]
lea rdx, [0x140449e30]
nop dword [rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r8b
mov r10d, r8d
and r10b, r9b
or r8b, r9b
not r8b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 2
jg 0x14031276f
inc rax
jmp 0x140312740
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [0x140566b9c]
cmp ecx, 0x10
jg 0x14031278f
test al, al
je 0x14031279c
mov ecx, dword [0x140566b9c]
cmp ecx, 0x44
jge 0x140312780
jmp 0x14031278b
movzx eax, byte [0x140540538]
add al, 0x14
xchg byte [0x1405400a3], al
lea rax, [0x1405400a0]
jmp 0x140312a40
xor edx, edx
lea rax, [0x14053fe30]
lea rcx, [0x140449bf0]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, dword [0x140540528]
add edx, r8d
add edx, 0x50108423
cmp edx, 3
jl 0x1403127d0
mov al, 0x33
xchg byte [0x14053fe33], al
lea rax, [0x14053fe30]
jmp 0x140312a40
movzx eax, byte [0x14053fe9d]
cmp dword [0x140540528], 0xafef7bde
je 0x140312831
movzx eax, byte [0x14053fe9d]
jmp 0x140312815
cmp al, 0x7a
je 0x140312a0d
mov cl, 0x22
nop dword [rax + rax]
mov eax, dword [0x140566b98]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
xor eax, eax
sub eax, dword [0x140540528]
mov r8d, eax
xor r8d, 0xafef7bde
and eax, 0x2fef7bde
lea eax, [r8 + rax*2]
add eax, edx
jne 0x140312892
nop
mov al, 0x37
lock cmpxchg byte [0x14053fe9d], cl
sete dl
mov r8d, dword [0x140566b98]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1403128b0
movzx edx, byte [0x140540538]
lea eax, [rdx - 0x7f]
add dl, 0x6c
lock cmpxchg byte [0x14053fe9d], dl
jmp 0x140312870
test dl, dl
jne 0x1403128cb
movzx edx, byte [0x140540538]
add dl, 0xc4
cmp al, dl
jne 0x140312840
jmp 0x140312a0d
mov eax, dword [0x140566b9c]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1403128e0
xor r8d, r8d
lea r9, [0x14053fe80]
lea r10, [0x140449c40]
xor r11d, r11d
jmp 0x140312914
mov eax, r11d
xor eax, 1
and r11d, 1
lea r11d, [rax + r11*2]
cmp r11d, 0x1d
jge 0x140312960
mov eax, dword [0x140566b98]
lea ecx, [rax - 1]
imul ecx, eax
movsxd rsi, r11d
test cl, 1
jne 0x14031293e
nop dword [rax + rax]
movzx eax, byte [rsi + r10]
xor byte [rsi + r9], al
test r8b, r8b
je 0x140312900
movzx eax, byte [rsi + r9]
movzx ecx, byte [rsi + r10]
mov edx, eax
shl dl, cl
mov ecx, edx
shl al, cl
mov ebx, eax
shl bl, cl
sub al, bl
mul bl
xor al, bl
mov byte [rsi + r9], al
jmp 0x140312930
mov eax, 0x50108422
nop word cs:[rax + rax]
mov ecx, dword [0x140566b9c]
cmp ecx, 0x15
jg 0x140312996
mov ecx, dword [0x140566b98]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140540528]
add ecx, eax
cmp edx, ecx
je 0x1403129c9
mov ecx, dword [0x140566b98]
mov edx, dword [0x140540528]
lea r8d, [rcx + rdx]
inc r8d
imul r8d, ecx
and r8d, 1
mov ecx, edx
xor ecx, 0x50108422
and edx, 0x50108422
lea ecx, [rcx + rdx*2]
cmp r8d, ecx
jne 0x140312970
jmp 0x14031297b
mov eax, dword [0x140566b9c]
mov ecx, 0x50108465
add ecx, dword [0x140540528]
cmp eax, ecx
jge 0x140312a03
movzx eax, byte [0x140540538]
add al, 0xc4
xchg byte [0x14053fe9d], al
lea rax, [fcn.1403125a0]
add eax, eax
add eax, 0x360
mov ecx, eax
not ecx
test ecx, eax
je 0x140312a0d
mov al, 0x7a
xchg byte [0x14053fe9d], al
jmp 0x1403129de
mov al, 1
nop
mov ecx, dword [0x140566b9c]
cmp ecx, 0x18
jg 0x140312a33
mov ecx, dword [0x140566b98]
mov edx, dword [0x140540528]
add edx, ecx
inc edx
imul edx, ecx
test dl, 1
je 0x140312a39
test al, al
je 0x140312a10
jmp 0x140312a1b
lea rax, [0x14053fe80]
pop rbx
pop rsi
ret