Function at 0x41a774
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov rdi, rcx
mov rsi, qword [rcx + 0x130]
mov rax, rsi
shr rax, 4
lea rbp, [rax + rsi + 0x400]
cmp rbp, rsi
jae 0x41a7b6
mov eax, 0x80004005
jmp 0x41ae70
mov rax, qword [rcx + 0x148]
mov qword [rcx + 0x140], rax
lea r15, [0x004671c0]
xor r13d, r13d
cmp rax, r13
jne 0x41a8dc
mov rdx, qword [rcx + 0x150]
cmp rdx, r13
je 0x41a7ec
cmp rsi, qword [rcx + 0x158]
je 0x41a822
mov rcx, r15
call qword [0x004671c8]
mov qword [rdi + 0x158], r13
mov qword [rdi + 0x150], r13
mov rdx, rsi
mov rcx, r15
call qword [0x004671c0]
mov qword [rdi + 0x150], rax
cmp rax, r13
je 0x41a822
mov qword [rdi + 0x158], rsi
cmp qword [rdi + 0x150], r13
jne 0x41a835
mov eax, 0x8007000e
jmp 0x41ae70
mov edx, dword [rdi + 0x180]
cmp edx, r13d
jne 0x41a8a5
mov eax, dword [rdi + 0x60]
mov dword [rsp + 0x48], eax
mov r10d, 0x159a55e5
mov r9d, 0x1f123bb5
mov rdx, qword [rdi + 0x158]
mov r11, qword [rdi + 0x150]
mov r8, r13
cmp rdx, r13
jbe 0x41a8b5
movzx ecx, r10w
imul ecx, ecx, 0x9069
shr r10d, 0x10
add r10d, ecx
movzx ecx, r9w
imul ecx, ecx, 0x4650
shr r9d, 0x10
add r9d, ecx
mov dword [rsp + 0x44], r9d
mov al, byte [rsp + 0x48]
xor al, r9b
mov byte [r8 + r11], al
inc r8
cmp r8, rdx
jb 0x41a869
jmp 0x41a8b5
mov r8d, dword [rdi + 0x60]
lea rcx, [rdi + 0x150]
call fcn.0041a1dc
mov rdx, qword [rdi + 0x158]
mov rcx, qword [rdi + 0x150]
call fcn.0045c600
mov dword [rdi + 0x128], eax
mov rax, qword [rdi + 0x150]
mov qword [rdi + 0x140], rax
cmp qword [rdi + 0x30], r13
je 0x41a947
mov rbx, qword [rdi + 0x130]
mov rdx, qword [rdi + 0x160]
cmp rdx, r13
je 0x41a8fe
cmp rbx, qword [rdi + 0x168]
je 0x41a934
mov rcx, r15
call qword [0x004671c8]
mov qword [rdi + 0x168], r13
mov qword [rdi + 0x160], r13
mov rdx, rbx
mov rcx, r15
call qword [0x004671c0]
mov qword [rdi + 0x160], rax
cmp rax, r13
je 0x41a934
mov qword [rdi + 0x168], rbx
cmp qword [rdi + 0x160], r13
jne 0x41a947
mov eax, 0x8007000e
jmp 0x41ae70
mov esi, 0x30
lea r14, [0x00460ed0]
cmp qword [rdi + 0x110], r13
jne 0x41a9ae
mov rcx, rsi
call fcn.00403b94
mov rbx, rax
cmp rax, r13
je 0x41a97d
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov dword [rax + 0x18], r13d
mov qword [rax], r14
jmp 0x41a980
mov rbx, r13
mov qword [rdi + 0x108], rbx
cmp rbx, r13
je 0x41a995
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopyInd]
mov rcx, qword [rdi + 0x110]
cmp rcx, r13
je 0x41a9a7
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov qword [rdi + 0x110], rbx
mov rbx, qword [rdi + 0x108]
mov rdx, qword [rbx + 8]
cmp rdx, r13
je 0x41a9c4
cmp rbp, qword [rbx + 0x10]
je 0x41a9ee
mov rcx, r15
call qword [0x004671c8]
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
mov rdx, rbp
mov rcx, r15
call qword [0x004671c0]
mov qword [rbx + 8], rax
cmp rax, r13
je 0x41a9ee
mov qword [rbx + 0x10], rbp
mov rax, qword [rdi + 0x108]
cmp qword [rax + 8], r13
jne 0x41aa05
mov eax, 0x8007000e
jmp 0x41ae70
cmp qword [rdi + 0x178], r13
jne 0x41aa60
mov rcx, rsi
call fcn.00403b94
mov rbx, rax
cmp rax, r13
je 0x41aa2f
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov dword [rax + 0x18], r13d
mov qword [rax], r14
jmp 0x41aa32
mov rbx, r13
mov qword [rdi + 0x170], rbx
cmp rbx, r13
je 0x41aa47
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopyInd]
mov rcx, qword [rdi + 0x178]
cmp rcx, r13
je 0x41aa59
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov qword [rdi + 0x178], rbx
mov rbx, qword [rdi + 0x170]
mov rdx, qword [rbx + 8]
mov esi, 5
cmp rdx, r13
je 0x41aa7b
cmp qword [rbx + 0x10], rsi
je 0x41aaa5
mov rcx, r15
call qword [0x004671c8]
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
mov rdx, rsi
mov rcx, r15
call qword [0x004671c0]
mov qword [rbx + 8], rax
cmp rax, r13
je 0x41aaa5
mov qword [rbx + 0x10], rsi
mov rax, qword [rdi + 0x170]
cmp qword [rax + 8], r13
jne 0x41aabc
mov eax, 0x8007000e
jmp 0x41ae70
mov r14d, 0xffffffff
mov dword [rax + 0x2c], r14d
mov byte [rax + 0x28], 1
mov byte [rax + 0x29], r13b
mov qword [rax + 0x20], r13
mov qword [rsp + 0xc8], r13
mov rbx, qword [rdi + 0x30]
cmp rbx, r13
je 0x41aafb
cmp rbx, r13
je 0x41aaf1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopyInd]
mov qword [rsp + 0xc8], rbx
jmp 0x41ab15
mov rbx, qword [rdi + 0x28]
cmp rbx, r13
je 0x41ab0d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopyInd]
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xb0], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xb0]
lea rdx, [0x004663b8]
mov rcx, rbx
call qword [rax]
mov rdx, qword [rsp + 0xb0]
cmp rdx, r13
je 0x41ab8f
mov rax, qword [rdi + 0x130]
mov qword [rsp + 0xb8], rax
lea r8, [rsp + 0xb8]
lea rcx, [rdi + 0x188]
call fcn.0040ee74
mov esi, eax
cmp eax, r13d
je 0x41abc2
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41ab7f
mov rdx, qword [rcx]
call qword [rdx + InitCommonControls]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + InitCommonControls]
mov eax, esi
jmp 0x41ae70
mov edx, r13d
cmp dword [rdi + 0x190], r13d
jbe 0x41abc2
mov rcx, qword [rdi + 0x188]
mov rax, qword [rcx]
cmp byte [rax + 4], r13b
je 0x41abbb
inc edx
add rcx, 8
cmp edx, dword [rdi + 0x190]
jb 0x41aba2
jmp 0x41abc2
mov esi, 0x80070057
jmp 0x41ac2a
mov qword [rsp + 0xc0], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xc0]
lea rdx, [0x00466398]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x41ac3a
mov rax, qword [rcx]
mov rdx, qword [rdi + 0x178]
call qword [rax + 0x18]
mov esi, eax
cmp eax, r13d
je 0x41ac3a
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x41ac16
mov rdx, qword [rcx]
call qword [rdx + InitCommonControls]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41ac2a
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + InitCommonControls]
mov eax, esi
jmp 0x41ae70
mov qword [rsp + 0xb8], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xb8]
lea rdx, [0x00466308]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x41ae31
mov rax, qword [rcx]
lea rdx, [rdi + 0xa0]
mov ebp, InitCommonControls
mov r8d, ebp
call qword [rax + 0x18]
mov esi, eax
cmp eax, r13d
je 0x41acc7
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x41ac9a
mov rdx, qword [rcx]
call qword [rdx + InitCommonControls]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x41acae
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41acc2
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
jmp 0x41ae08
mov r8, rbp
xor edx, edx
lea rcx, [rsp + 0x50]
call sub.msvcrt.dll_memset
mov rcx, qword [rdi + 0x30]
cmp rcx, r13
je 0x41ad04
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov r8d, ebp
lea rdx, [rsp + 0x50]
call qword [rax + 0x20]
mov rcx, qword [rsp + 0xb8]
jmp 0x41ae31
mov ecx, 0x28
call fcn.00403b94
mov rsi, rax
cmp rax, r13
je 0x41ad26
mov dword [rax + 8], r13d
lea rax, [0x00460ef0]
mov qword [rsi], rax
jmp 0x41ad29
mov rsi, r13
mov qword [rsp + 0x38], rsi
cmp rsi, r13
je 0x41ad3d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopyInd]
nop
lea rax, [rsp + 0x50]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x20], rbp
mov qword [rsi + 0x18], r13
mov ecx, 0x18
call fcn.00403b94
mov rbp, rax
cmp rax, r13
je 0x41ad75
mov dword [rax + 8], r13d
lea rax, [0x00460f68]
mov qword [rbp], rax
mov byte [rbp + 0xc], 1
jmp 0x41ad78
mov rbp, r13
mov qword [rsp + 0x40], rbp
cmp rbp, r13
je 0x41ad8d
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + VariantCopyInd]
nop
mov dword [rbp + 0x10], r14d
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8, rbp
mov rdx, rsi
call qword [rax + 0x18]
mov edi, eax
cmp eax, r13d
je 0x41ae15
mov rdx, qword [rbp]
mov rcx, rbp
call qword [rdx + InitCommonControls]
nop
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + InitCommonControls]
nop
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x41adde
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x41adf2
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41ae06
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov esi, edi
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + InitCommonControls]
mov eax, esi
jmp 0x41ae70
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + InitCommonControls]
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + InitCommonControls]
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x41ae3d
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x41ae51
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41ae65
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + InitCommonControls]
xor eax, eax
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret