Function at 0x41921c
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 0x41925e
mov eax, 0x80004005
jmp 0x419918
mov rax, qword [rcx + 0x148]
mov qword [rcx + 0x140], rax
lea r15, [0x00457a70]
xor r13d, r13d
cmp rax, r13
jne 0x419384
mov rdx, qword [rcx + 0x150]
cmp rdx, r13
je 0x419294
cmp rsi, qword [rcx + 0x158]
je 0x4192ca
mov rcx, r15
call qword [0x00457a78]
mov qword [rdi + 0x158], r13
mov qword [rdi + 0x150], r13
mov rdx, rsi
mov rcx, r15
call qword [0x00457a70]
mov qword [rdi + 0x150], rax
cmp rax, r13
je 0x4192ca
mov qword [rdi + 0x158], rsi
cmp qword [rdi + 0x150], r13
jne 0x4192dd
mov eax, 0x8007000e
jmp 0x419918
mov edx, dword [rdi + 0x180]
cmp edx, r13d
jne 0x41934d
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 0x41935d
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 0x419311
jmp 0x41935d
mov r8d, dword [rdi + 0x60]
lea rcx, [rdi + 0x150]
call fcn.00418ca8
mov rdx, qword [rdi + 0x158]
mov rcx, qword [rdi + 0x150]
call fcn.0044da00
mov dword [rdi + 0x128], eax
mov rax, qword [rdi + 0x150]
mov qword [rdi + 0x140], rax
cmp qword [rdi + 0x30], r13
je 0x4193ef
mov rbx, qword [rdi + 0x130]
mov rdx, qword [rdi + 0x160]
cmp rdx, r13
je 0x4193a6
cmp rbx, qword [rdi + 0x168]
je 0x4193dc
mov rcx, r15
call qword [0x00457a78]
mov qword [rdi + 0x168], r13
mov qword [rdi + 0x160], r13
mov rdx, rbx
mov rcx, r15
call qword [0x00457a70]
mov qword [rdi + 0x160], rax
cmp rax, r13
je 0x4193dc
mov qword [rdi + 0x168], rbx
cmp qword [rdi + 0x160], r13
jne 0x4193ef
mov eax, 0x8007000e
jmp 0x419918
mov esi, 0x30
lea r14, [0x00451b50]
cmp qword [rdi + 0x110], r13
jne 0x419456
mov rcx, rsi
call fcn.00402130
mov rbx, rax
cmp rax, r13
je 0x419425
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov dword [rax + 0x18], r13d
mov qword [rax], r14
jmp 0x419428
mov rbx, r13
mov qword [rdi + 0x108], rbx
cmp rbx, r13
je 0x41943d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov rcx, qword [rdi + 0x110]
cmp rcx, r13
je 0x41944f
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 0x41946c
cmp rbp, qword [rbx + 0x10]
je 0x419496
mov rcx, r15
call qword [0x00457a78]
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
mov rdx, rbp
mov rcx, r15
call qword [0x00457a70]
mov qword [rbx + 8], rax
cmp rax, r13
je 0x419496
mov qword [rbx + 0x10], rbp
mov rax, qword [rdi + 0x108]
cmp qword [rax + 8], r13
jne 0x4194ad
mov eax, 0x8007000e
jmp 0x419918
cmp qword [rdi + 0x178], r13
jne 0x419508
mov rcx, rsi
call fcn.00402130
mov rbx, rax
cmp rax, r13
je 0x4194d7
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov dword [rax + 0x18], r13d
mov qword [rax], r14
jmp 0x4194da
mov rbx, r13
mov qword [rdi + 0x170], rbx
cmp rbx, r13
je 0x4194ef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov rcx, qword [rdi + 0x178]
cmp rcx, r13
je 0x419501
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 0x419523
cmp qword [rbx + 0x10], rsi
je 0x41954d
mov rcx, r15
call qword [0x00457a78]
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
mov rdx, rsi
mov rcx, r15
call qword [0x00457a70]
mov qword [rbx + 8], rax
cmp rax, r13
je 0x41954d
mov qword [rbx + 0x10], rsi
mov rax, qword [rdi + 0x170]
cmp qword [rax + 8], r13
jne 0x419564
mov eax, 0x8007000e
jmp 0x419918
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 0x4195a3
cmp rbx, r13
je 0x419599
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov qword [rsp + 0xc8], rbx
jmp 0x4195bd
mov rbx, qword [rdi + 0x28]
cmp rbx, r13
je 0x4195b5
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, [0x00456988]
mov rcx, rbx
call qword [rax]
mov rdx, qword [rsp + 0xb0]
cmp rdx, r13
je 0x419637
mov rax, qword [rdi + 0x130]
mov qword [rsp + 0xb8], rax
lea r8, [rsp + 0xb8]
lea rcx, [rdi + 0x188]
call fcn.0040d9e4
mov esi, eax
cmp eax, r13d
je 0x41966a
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x419627
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov eax, esi
jmp 0x419918
mov edx, r13d
cmp dword [rdi + 0x190], r13d
jbe 0x41966a
mov rcx, qword [rdi + 0x188]
mov rax, qword [rcx]
cmp byte [rax + 4], r13b
je 0x419663
inc edx
add rcx, 8
cmp edx, dword [rdi + 0x190]
jb 0x41964a
jmp 0x41966a
mov esi, 0x80070057
jmp 0x4196d2
mov qword [rsp + 0xc0], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xc0]
lea rdx, [0x00456968]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x4196e2
mov rax, qword [rcx]
mov rdx, qword [rdi + 0x178]
call qword [rax + 0x18]
mov esi, eax
cmp eax, r13d
je 0x4196e2
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x4196be
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x4196d2
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov eax, esi
jmp 0x419918
mov qword [rsp + 0xb8], r13
mov rax, qword [rbx]
lea r8, [rsp + 0xb8]
lea rdx, [0x004568d8]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x4198d9
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 0x41976f
mov rcx, qword [rsp + 0xb8]
cmp rcx, r13
je 0x419742
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x419756
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41976a
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x4198b0
mov r8, rbp
xor edx, edx
lea rcx, [rsp + 0x50]
call sub.msvcrt.dll_memset
mov rcx, qword [rdi + 0x30]
cmp rcx, r13
je 0x4197ac
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 0x4198d9
mov ecx, 0x28
call fcn.00402130
mov rsi, rax
cmp rax, r13
je 0x4197ce
mov dword [rax + 8], r13d
lea rax, [0x00451b70]
mov qword [rsi], rax
jmp 0x4197d1
mov rsi, r13
mov qword [rsp + 0x38], rsi
cmp rsi, r13
je 0x4197e5
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.00402130
mov rbp, rax
cmp rax, r13
je 0x41981d
mov dword [rax + 8], r13d
lea rax, [0x00451be8]
mov qword [rbp], rax
mov byte [rbp + 0xc], 1
jmp 0x419820
mov rbp, r13
mov qword [rsp + 0x40], rbp
cmp rbp, r13
je 0x419835
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 0x4198bd
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 0x419886
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x41989a
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x4198ae
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 0x419918
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 0x4198e5
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r13
je 0x4198f9
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r13
je 0x41990d
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