Function at 0x429b54
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 0x429b96
mov eax, 0x80004005
jmp 0x42a250
mov rax, qword [rcx + 0x148]
mov qword [rcx + 0x140], rax
lea r15, [0x004deda8]
xor r13d, r13d
cmp rax, r13
jne 0x429cbc
mov rdx, qword [rcx + 0x150]
cmp rdx, r13
je 0x429bcc
cmp rsi, qword [rcx + 0x158]
je 0x429c02
mov rcx, r15
call qword [0x004dedb0]
mov qword [rdi + 0x158], r13
mov qword [rdi + 0x150], r13
mov rdx, rsi
mov rcx, r15
call qword [0x004deda8]
mov qword [rdi + 0x150], rax
cmp rax, r13
je 0x429c02
mov qword [rdi + 0x158], rsi
cmp qword [rdi + 0x150], r13
jne 0x429c15
mov eax, 0x8007000e
jmp 0x42a250
mov edx, dword [rdi + 0x180]
cmp edx, r13d
jne 0x429c85
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 0x429c95
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 0x429c49
jmp 0x429c95
mov r8d, dword [rdi + 0x60]
lea rcx, [rdi + 0x150]
call fcn.004295d8
mov rdx, qword [rdi + 0x158]
mov rcx, qword [rdi + 0x150]
call fcn.004cca10
mov dword [rdi + 0x128], eax
mov rax, qword [rdi + 0x150]
mov qword [rdi + 0x140], rax
cmp qword [rdi + 0x30], r13
je 0x429d27
mov rbx, qword [rdi + 0x130]
mov rdx, qword [rdi + 0x160]
cmp rdx, r13
je 0x429cde
cmp rbx, qword [rdi + 0x168]
je 0x429d14
mov rcx, r15
call qword [0x004dedb0]
mov qword [rdi + 0x168], r13
mov qword [rdi + 0x160], r13
mov rdx, rbx
mov rcx, r15
call qword [0x004deda8]
mov qword [rdi + 0x160], rax
cmp rax, r13
je 0x429d14
mov qword [rdi + 0x168], rbx
cmp qword [rdi + 0x160], r13
jne 0x429d27
mov eax, 0x8007000e
jmp 0x42a250
mov esi, 0x30
lea r14, [0x004d4830]
cmp qword [rdi + 0x110], r13
jne 0x429d8e
mov rcx, rsi
call fcn.00402388
mov rbx, rax
cmp rax, r13
je 0x429d5d
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov dword [rax + 0x18], r13d
mov qword [rax], r14
jmp 0x429d60
mov rbx, r13
mov qword [rdi + 0x108], rbx
cmp rbx, r13
je 0x429d75
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov rcx, qword [rdi + 0x110]
cmp rcx, r13
je 0x429d87
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rdi + 0x110], rbx
mov rbx, qword [rdi + 0x108]
mov rdx, qword [rbx + 8]
cmp rdx, r13
je 0x429da4
cmp rbp, qword [rbx + 0x10]
je 0x429dce
mov rcx, r15
call qword [0x004dedb0]
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
mov rdx, rbp
mov rcx, r15
call qword [0x004deda8]
mov qword [rbx + 8], rax
cmp rax, r13
je 0x429dce
mov qword [rbx + 0x10], rbp
mov rax, qword [rdi + 0x108]
cmp qword [rax + 8], r13
jne 0x429de5
mov eax, 0x8007000e
jmp 0x42a250
cmp qword [rdi + 0x178], r13
jne 0x429e40
mov rcx, rsi
call fcn.00402388
mov rbx, rax
cmp rax, r13
je 0x429e0f
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov dword [rax + 0x18], r13d
mov qword [rax], r14
jmp 0x429e12
mov rbx, r13
mov qword [rdi + 0x170], rbx
cmp rbx, r13
je 0x429e27
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov rcx, qword [rdi + 0x178]
cmp rcx, r13
je 0x429e39
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rdi + 0x178], rbx
mov rbx, qword [rdi + 0x170]
mov rdx, qword [rbx + 8]
mov esi, 5
cmp rdx, r13
je 0x429e5b
cmp qword [rbx + 0x10], rsi
je 0x429e85
mov rcx, r15
call qword [0x004dedb0]
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
mov rdx, rsi
mov rcx, r15
call qword [0x004deda8]
mov qword [rbx + 8], rax
cmp rax, r13
je 0x429e85
mov qword [rbx + 0x10], rsi
mov rax, qword [rdi + 0x170]
cmp qword [rax + 8], r13
jne 0x429e9c
mov eax, 0x8007000e
jmp 0x42a250
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 0x429edb
cmp rbx, r13
je 0x429ed1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov qword [rsp + 0xc8], rbx
jmp 0x429ef5
mov rbx, qword [rdi + 0x28]
cmp rbx, r13
je 0x429eed
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xb0], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xb0]
lea rdx, [0x004d9200]
mov rcx, rbx
call qword [rax]
mov rdx, qword [rsp + 0xb0]
cmp rdx, r13
je 0x429f6f
mov rax, qword [rdi + 0x130]
mov qword [rsp + 0xb8], rax
lea r8, [rsp + 0xb8]
lea rcx, [rdi + 0x188]
call fcn.0040fe0c
mov esi, eax
cmp eax, r13d
je 0x429fa2
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x429f5f
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov eax, esi
jmp 0x42a250
mov edx, r13d
cmp dword [rdi + 0x190], r13d
jbe 0x429fa2
mov rcx, qword [rdi + 0x188]
mov rax, qword [rcx]
cmp byte [rax + 4], r13b
je 0x429f9b
inc edx
add rcx, 8
cmp edx, dword [rdi + 0x190]
jb 0x429f82
jmp 0x429fa2
mov esi, 0x80070057
jmp 0x42a00a
mov qword [rsp + 0xc0], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xc0]
lea rdx, [0x004d91e0]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x42a01a
mov rax, qword [rcx]
mov rdx, qword [rdi + 0x178]
call qword [rax + 0x18]
mov esi, eax
cmp eax, r13d
je 0x42a01a
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x429ff6
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x42a00a
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov eax, esi
jmp 0x42a250
mov qword [rsp + 0xb8], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xb8]
lea rdx, [0x004d90e0]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x42a211
mov rax, qword [rcx]
lea rdx, [rdi + 0xa0]
mov ebp, 0x10
mov r8d, ebp
call qword [rax + 0x18]
mov esi, eax
cmp eax, r13d
je 0x42a0a7
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x42a07a
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x42a08e
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x42a0a2
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x42a1e8
mov r8, rbp
xor edx, edx
lea rcx, [rsp + 0x50]
call sub.msvcrt.dll_memset
mov rcx, qword [rdi + 0x30]
cmp rcx, r13
je 0x42a0e4
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 0x42a211
mov ecx, 0x28
call fcn.00402388
mov rsi, rax
cmp rax, r13
je 0x42a106
mov dword [rax + 8], r13d
lea rax, [0x004d4850]
mov qword [rsi], rax
jmp 0x42a109
mov rsi, r13
mov qword [rsp + 0x38], rsi
cmp rsi, r13
je 0x42a11d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
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.00402388
mov rbp, rax
cmp rax, r13
je 0x42a155
mov dword [rax + 8], r13d
lea rax, [0x004d48c8]
mov qword [rbp], rax
mov byte [rbp + 0xc], 1
jmp 0x42a158
mov rbp, r13
mov qword [rsp + 0x40], rbp
cmp rbp, r13
je 0x42a16d
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + VariantCopy]
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 0x42a1f5
mov rdx, qword [rbp]
mov rcx, rbp
call qword [rdx + 0x10]
nop
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x10]
nop
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x42a1be
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x42a1d2
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x42a1e6
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov esi, edi
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov eax, esi
jmp 0x42a250
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x42a21d
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x42a231
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x42a245
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
xor eax, eax
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret