Function at 0x140127be0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov esi, edx
mov eax, dword [0x14058f14c]
mov edx, 0xa5c3332b
add edx, dword [0x140523754]
cmp eax, edx
nop dword [rax]
mov eax, dword [0x14058f148]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x140127c00
test ecx, ecx
je 0x140127cec
test esi, esi
je 0x140127e31
nop word cs:[rax + rax]
cmp dword [0x140523754], 0x5a3ccce5
je 0x140127c4e
movzx eax, byte [0x1405222a7]
mov eax, dword [0x14058f14c]
cmp eax, 0x51
jge 0x140127c30
movzx eax, byte [0x1405222a7]
mov ecx, dword [0x14058f14c]
cmp ecx, 0x42
jg 0x140127c3c
cmp al, 0x2b
je 0x140127f55
mov ecx, 0xa5c3335e
mov dl, 0xb
nop
mov eax, dword [0x14058f14c]
mov r8d, dword [0x140523754]
add r8d, ecx
cmp eax, r8d
jge 0x140127ce0
nop word cs:[rax + rax]
mov al, 0x88
lock cmpxchg byte [0x1405222a7], dl
sete r8b
mov r9d, dword [0x14058f148]
mov r10d, dword [0x140523754]
mov r11d, r9d
sub r11d, r10d
add r11d, 0x5a3ccce4
imul r11d, r9d
and r11d, 1
add r10d, 0xa5c3331b
cmp r11d, r10d
jne 0x140127ce0
test r8b, r8b
jne 0x140127e9c
cmp al, 0x2b
jne 0x140127c70
jmp 0x140127f55
mov al, 0x88
lock cmpxchg byte [0x1405222a7], dl
jmp 0x140127c90
mov ebx, 0xa5c3331d
lea rdi, [0x1401280d0]
nop dword [rax + rax]
mov eax, dword [0x14058f148]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x140127d2d
mov ecx, dword [0x14058f148]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140523754]
add ecx, ebx
xor edx, edx
div ecx
test edx, edx
je 0x140127d59
mov ecx, 0x13
call fcn.1403e5794
mov qword [0x14058f140], rax
mov rcx, rdi
call fcn.1404058a4
mov eax, dword [0x14058f148]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140127d00
jmp 0x140127d11
test esi, esi
jne 0x140127d77
xor eax, eax
test al, al
je 0x140127fc9
jmp 0x140127fe7
movzx eax, byte [0x14052231d]
mov eax, dword [0x14058f148]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140127d70
movzx eax, byte [0x14052231d]
mov ecx, dword [0x14058f148]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xa5c3331b
add ecx, dword [0x140523754]
cmp edx, ecx
jne 0x140127d70
cmp al, 0xb7
je 0x140127fa9
xor ecx, ecx
mov dl, 0x12
lea rax, [fcn.140127be0]
lea r8d, [rax + rax]
add r8d, 0x2ba0
mov r9d, r8d
not r9d
nop word cs:[rax + rax]
test cl, cl
jne 0x140127e20
nop word cs:[rax + rax]
mov al, 0x54
lock cmpxchg byte [0x14052231d], dl
sete r10b
mov r11d, dword [0x14058f14c]
cmp r11d, 0x1e
jge 0x140127e20
test r10b, r10b
jne 0x140127f61
cmp al, 0xb7
jne 0x140127de0
jmp 0x140127fa9
mov al, 0x54
lock cmpxchg byte [0x14052231d], dl
test r9d, r8d
jne 0x140127e20
jmp 0x140127df0
movzx eax, byte [0x1405220e6]
nop dword [rax + rax]
cmp al, 0x1a
je 0x1401280b2
movzx ecx, byte [0x140523750]
mov edx, ecx
xor dl, 0x28
mov eax, ecx
and al, 0x28
add al, al
add al, dl
add cl, 0x57
lock cmpxchg byte [0x1405220e6], cl
jne 0x140127e40
xor eax, eax
lea rcx, [0x1405220d0]
lea rdx, [0x14044de30]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x15
jg 0x140127fb5
inc rax
jmp 0x140127e80
xor edx, edx
lea r8, [0x1405222a0]
lea r9, [0x14044dfd0]
mov r10d, 0xa5c33322
jmp 0x140127eca
inc edx
cmp edx, eax
jge 0x140127f4d
mov eax, dword [0x14058f148]
lea ecx, [rax + 1]
imul ecx, eax
movsxd r11, edx
test cl, 1
jne 0x140127f10
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 [0x140523754]
add eax, r10d
mov ecx, dword [0x14058f148]
lea esi, [rcx - 1]
imul esi, ecx
test sil, 1
je 0x140127ec0
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 [0x14058f14c]
cmp eax, 0x50
jge 0x140127f10
jmp 0x140127ee0
mov al, 0x2b
xchg byte [0x1405222a7], al
lea rax, [0x1405222a0]
jmp 0x140128087
xor edx, edx
lea rax, [0x140522310]
lea rcx, [0x14044e040]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x140523754]
add edx, r8d
add edx, 0xa5c3331c
cmp edx, 0xd
jl 0x140127f80
mov al, 0xb7
xchg byte [0x14052231d], al
lea rax, [0x140522310]
jmp 0x140128087
mov eax, dword [0x14058f14c]
cmp eax, 0x44
jl 0x14012808f
jmp 0x1401280a8
movzx eax, byte [0x140522163]
lea rcx, [fcn.140127be0]
add ecx, ecx
add ecx, 0x44c0
mov edx, ecx
not edx
test edx, ecx
je 0x140127ff0
movzx eax, byte [0x140522163]
jmp 0x140127fc9
cmp al, 0xa9
je 0x140128080
mov cl, 0xf4
nop word [rax + rax]
mov al, 0x24
lock cmpxchg byte [0x140522163], cl
je 0x140128042
mov edx, dword [0x14058f14c]
cmp edx, 0x2f
mov edx, dword [0x14058f14c]
mov r8d, dword [0x140523754]
mov r9d, r8d
xor r9d, 0xa5c33348
and r8d, 0x25c33348
lea r8d, [r9 + r8*2]
cmp edx, r8d
jge 0x140128015
cmp al, 0xa9
jne 0x140128000
jmp 0x140128080
xor eax, eax
lea rcx, [0x140522160]
lea rdx, [0x14044deb0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 2
jg 0x140128078
inc rax
jmp 0x140128060
mov al, 0xa9
xchg byte [0x140522163], al
lea rax, [0x140522160]
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov al, 0x1a
xchg byte [0x1405220e6], al
mov eax, dword [0x14058f148]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401280b2
mov al, 0x1a
xchg byte [0x1405220e6], al
jmp 0x14012808f
xor eax, eax
test al, al
jne 0x1401280be
mov al, 1
test al, al
jne 0x1401280c6
mov al, 1
test al, al
je 0x1401280c0
jmp 0x1401280b8
lea rax, [0x1405220d0]
jmp 0x140128087