Function at 0x403020
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x50
xor eax, eax
mov edx, 1
mov rbx, rcx
mov ecx, 0x20
mov r10d, edx
mov r8d, eax
and r10d, 1
test dl, 0x48
setne r9b
or r8d, edx
cmp r10b, r9b
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x403034
mov byte [rsp + 0x30], al
mov edx, 0x20
mov eax, 1
xor ecx, ecx
jmp 0x40307c
mov r8d, ecx
or r8d, eax
test al, 0x6f
cmovne ecx, r8d
add eax, eax
sub edx, 1
jne 0x403070
mov byte [rsp + 0x31], cl
mov edx, 0x20
mov eax, 1
xor ecx, ecx
jmp 0x4030a1
mov r8d, ecx
or r8d, eax
test al, 0x75
cmovne ecx, r8d
add eax, eax
sub edx, 1
jne 0x403095
mov byte [rsp + 0x32], cl
xor eax, eax
mov ecx, 0x20
mov edx, 1
nop dword [rax + rax]
mov r10d, edx
mov r8d, eax
and r10d, 1
test dl, 0x64
setne r9b
or r8d, edx
cmp r10b, r9b
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x4030c0
mov byte [rsp + 0x33], al
mov edx, 0x20
mov eax, 1
xor ecx, ecx
jmp 0x403100
mov r8d, ecx
or r8d, eax
test al, 0x73
cmovne ecx, r8d
add eax, eax
sub edx, 1
jne 0x4030f4
mov byte [rsp + 0x34], cl
mov edx, 0x20
mov eax, 1
xor ecx, ecx
jmp 0x40312c
mov r8d, ecx
or r8d, eax
test al, 0x6f
cmovne ecx, r8d
add eax, eax
sub edx, 1
jne 0x403120
mov byte [rsp + 0x35], cl
xor eax, eax
mov ecx, 0x20
mov edx, 1
mov r10d, edx
mov r8d, eax
and r10d, 1
test dl, 0x64
setne r9b
or r8d, edx
cmp r10b, r9b
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x403143
mov byte [rsp + 0x36], al
mov edx, 0x20
mov eax, 1
xor ecx, ecx
jmp 0x40318c
mov r8d, ecx
or r8d, eax
test al, 0x75
cmovne ecx, r8d
add eax, eax
sub edx, 1
jne 0x403180
mov byte [rsp + 0x37], cl
xor eax, eax
mov ecx, 0x20
mov edx, 1
mov r10d, edx
mov r8d, eax
and r10d, 1
test dl, 0x4e
setne r9b
or r8d, edx
cmp r10b, r9b
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x4031a3
mov byte [rsp + 0x38], al
mov edx, 1
mov eax, 0x20
xor ecx, ecx
jmp 0x4031ed
mov r8d, ecx
or r8d, edx
test dl, 0x71
cmovne ecx, r8d
add edx, edx
sub eax, 1
jne 0x4031e0
mov byte [rsp + 0x39], cl
xor eax, eax
mov ecx, 0x20
mov edx, 1
mov r10d, edx
mov r8d, eax
and r10d, 1
test dl, 0x64
setne r9b
or r8d, edx
cmp r10b, r9b
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x403204
mov byte [rsp + 0x3a], al
mov edx, 1
mov eax, 0x20
xor ecx, ecx
jmp 0x40324d
mov r8d, ecx
or r8d, edx
test dl, 0x6f
cmovne ecx, r8d
add edx, edx
sub eax, 1
jne 0x403240
mov byte [rsp + 0x3b], cl
xor eax, eax
mov ecx, 0x20
mov edx, 1
mov r10d, edx
mov r8d, eax
and r10d, 1
test dl, 0x54
setne r9b
or r8d, edx
cmp r10b, r9b
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x403264
mov byte [rsp + 0x3c], al
mov edx, 1
mov eax, 0x20
xor ecx, ecx
jmp 0x4032ad
mov r8d, ecx
or r8d, edx
test dl, 0x73
cmovne ecx, r8d
add edx, edx
sub eax, 1
jne 0x4032a0
mov byte [rsp + 0x3d], cl
mov eax, 0x20
mov edx, 1
xor ecx, ecx
jmp 0x4032dd
mov r8d, ecx
or r8d, edx
test dl, 0x6d
cmovne ecx, r8d
add edx, edx
sub eax, 1
jne 0x4032d0
mov byte [rsp + 0x3e], cl
xor eax, eax
mov ecx, 0x20
mov edx, 1
mov r9d, edx
mov r8d, eax
shr r9d, 6
or r8d, edx
xor r9d, edx
and r9d, 1
cmovne eax, r8d
add edx, edx
sub ecx, 1
jne 0x4032f4
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
mov rcx, rbx
mov byte [rsp + 0x3f], al
mov byte [rsp + 0x40], 0
call fcn.0044a530
mov rax, rbx
add rsp, 0x50
pop rbx
ret