Function at 0x140029e10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r12
mov rbp, rsp
sub rsp, 0x50
mov r12, rdx
mov rsi, rcx
test r8b, 1
je 0x140029e35
add rsp, 0x50
pop r12
pop rsi
pop rbp
jmp fcn.140029b60
mov rax, qword [rcx]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rdi
lea rcx, [rbp + 0x38]
mov qword [rsp + 0x48], r13
mov qword [rbp + 0x38], rax
mov qword [rsp + 0x40], r14
call fcn.1400290a0
mov ebx, dword [rbp + 0x38]
mov edi, dword [rbp + 0x3c]
mov r13b, InitCommonControls
add r12, 0x5a
lea r14, [0x140000000]
nop dword [rax]
mov eax, dword [r12]
movzx ecx, dil
mov r9d, edi
shr cl, 2
mov dword [rbp - 0x20], eax
shr r9d, 0x18
xor cl, dil
movzx eax, r9b
mov r8d, edi
and cl, 6
shl al, 7
shr r8d, 8
xor cl, dil
movzx edx, r8b
shr cl, 1
and dl, 0x87
or cl, al
movzx eax, r8b
shr al, 2
mov byte [rbp - 0x30], cl
movzx ecx, dil
or dl, al
shl cl, 2
movzx eax, dil
and al, 1
shr dl, 3
or cl, al
movzx eax, r8b
shl cl, 3
shl al, 2
or dl, cl
movzx ecx, r8b
shl cl, 2
mov byte [rbp - 0x2f], dl
mov edx, edi
xor cl, r8b
shr edx, 0x10
shl r8b, 7
and cl, 0x1f
xor cl, al
movzx eax, dl
shr al, 7
add cl, cl
or cl, al
movzx eax, dl
shr al, 2
mov byte [rbp - 0x2e], cl
movzx ecx, r9b
xor al, dl
and cl, 0x87
and al, 6
xor al, dl
shr al, 1
or al, r8b
mov byte [rbp - 0x2d], al
movzx eax, r9b
shr al, 2
or cl, al
movzx eax, dl
and dl, 1
shr cl, 3
shl al, 2
or al, dl
shl al, 3
or cl, al
movzx eax, dil
mov byte [rbp - 0x2c], cl
shr al, 7
movzx ecx, r9b
shl cl, 2
xor cl, r9b
shl r9b, 2
and cl, 0x1f
xor cl, r9b
add cl, cl
or cl, al
movzx eax, word [rbp - 0x20]
xor ax, word [rbp - 0x30]
mov byte [rbp - 0x2b], cl
mov word [rbp - 0x28], ax
movzx eax, word [rbp - 0x1e]
xor ax, word [rbp - 0x2e]
movzx ecx, byte [rbp - 0x28]
movzx r8d, byte [rbp - 0x27]
mov word [rbp - 0x26], ax
movzx eax, word [rbp - 0x2c]
xor ax, word [r12 + 4]
mov word [rbp - 0x24], ax
movzx eax, cl
and al, 3
shl al, 4
movzx edx, al
mov eax, r8d
and r8b, 0xf
shr rax, 4
shl r8b, 2
or rdx, rax
mov eax, ecx
shr rax, 2
movzx ecx, byte [rax + r14 + 0x51cd0]
movzx eax, byte [rdx + r14 + 0x51d10]
movzx edx, byte [rbp - 0x26]
shl cl, 4
or al, cl
movzx ecx, r8b
movzx r8d, byte [rbp - 0x24]
mov byte [rbp + 0x30], al
mov eax, edx
and edx, 0x3f
shr rax, 6
or rcx, rax
movzx eax, byte [rcx + r14 + 0x51d50]
movzx ecx, byte [rbp - 0x25]
shl al, 4
or al, byte [rdx + r14 + 0x51d90]
mov byte [rbp + 0x31], al
movzx eax, cl
and al, 3
shl al, 4
movzx edx, al
mov eax, r8d
and r8b, 0xf
shr rax, 4
shl r8b, 2
or rdx, rax
mov eax, ecx
shr rax, 2
movzx ecx, byte [rax + r14 + 0x51dd0]
movzx eax, byte [rdx + r14 + 0x51e10]
movzx edx, byte [rbp - 0x23]
shl cl, 4
or al, cl
movzx ecx, r8b
mov byte [rbp + 0x32], al
mov eax, edx
and edx, 0x3f
shr rax, 6
or rcx, rax
movzx eax, byte [rcx + r14 + 0x51e50]
lea rcx, [rbp + 0x38]
shl al, 4
or al, byte [rdx + r14 + 0x51e90]
mov byte [rbp + 0x33], al
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x38], eax
call fcn.1400292e0
mov r11d, dword [rbp + 0x38]
xor r11d, ebx
sub r12, 6
dec r13b
mov ebx, edi
mov edi, r11d
jne 0x140029e70
lea rcx, [rbp + 0x38]
mov dword [rbp + 0x38], r11d
mov dword [rbp + 0x3c], ebx
call fcn.1400291c0
mov r11, qword [rbp + 0x38]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov qword [rsi], r11
add rsp, 0x50
pop r12
pop rsi
pop rbp
ret