Function at 0x180031b40
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x20
xor ecx, ecx
lea r10, [0x180304e30]
mov rbx, rdx
lea r9d, [rcx + 2]
nop word [rax + rax]
xor edx, edx
cmp ecx, 0x50
cmovne edx, ecx
xor r8d, r8d
movsxd rax, edx
lea ecx, [r9 - 2]
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 - 1]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
mov ecx, r9d
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 1]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 2]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 3]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 4]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 5]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 6]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 7]
cmovne r8d, eax
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
xor edx, edx
cmp r8d, 0x4f
lea ecx, [r9 + 8]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 9]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0xa]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0xb]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0xc]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0xd]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0xe]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0xf]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0x10]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0x11]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
cmovne edx, eax
lea ecx, [r9 + 0x12]
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0x13]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0x14]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0x15]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0x16]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0x17]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0x18]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0x19]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
lea ecx, [r9 + 0x1a]
cmovne edx, eax
xor r8d, r8d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [rdx + 1]
cmp edx, 0x4f
lea ecx, [r9 + 0x1b]
cmovne r8d, eax
xor edx, edx
movsxd rax, r8d
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r8 + 1]
cmp r8d, 0x4f
cmovne edx, eax
lea ecx, [r9 + 0x1c]
movsxd rax, edx
add r9d, 0x1f
movzx eax, byte [rax + r10]
xor byte [rcx + rbx], al
lea eax, [r9 - 2]
lea ecx, [rdx + 1]
cmp eax, 0x7c
jb 0x180031b60
call fcn.180031860
cmp eax, dword [rbx]
sete al
add rsp, 0x20
pop rbx
ret