Function at 0x14001fdac
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
mov rsi, rcx
lea r12, [rcx + 0x1f8]
mov r14, qword [rcx + 0x160]
xor r13d, r13d
mov rdi, r14
cmp qword [rcx + 0x58], r13
jne 0x14001fe00
mov rcx, r14
shr rcx, 4
add rcx, 0x400
add rcx, r14
mov r14, rcx
cmp rcx, rdi
jae 0x14001fe00
mov eax, 0x80004005
jmp 0x1400203d8
mov rax, qword [rsi + 0x178]
mov qword [rsi + 0x170], rax
test rax, rax
je 0x14001fe8e
cmp byte [rsi + 0x4c], r13b
je 0x14001ff74
mov rax, qword [rsi + 0x180]
lea rbx, [rsi + 0x188]
test rax, rax
je 0x14001fe35
cmp rdi, qword [rbx]
je 0x14001fe5e
mov rcx, rax
call fcn.14005a400
mov qword [rbx], r13
mov qword [rsi + 0x180], r13
mov rcx, rdi
call fcn.14005a3e0
mov qword [rsi + 0x180], rax
test rax, rax
je 0x14001fe5e
mov qword [rbx], rdi
mov r8, qword [rsi + 0x160]
test r8, r8
je 0x14001fe73
test rax, rax
je 0x140020081
mov rdx, qword [rsi + 0x178]
mov rcx, rax
call fcn.14005c0a0
mov rax, qword [rsi + 0x180]
jmp 0x14001ff6d
lea r15, [rsi + 0x180]
mov rdx, qword [r15]
lea rbx, [r15 + 8]
test rdx, rdx
je 0x14001fea6
cmp rdi, qword [rbx]
je 0x14001feca
mov rcx, rdx
call fcn.14005a400
mov qword [rbx], r13
mov qword [r15], r13
mov rcx, rdi
call fcn.14005a3e0
mov rdx, rax
mov qword [r15], rax
test rax, rax
je 0x14001feca
mov qword [rbx], rdi
mov rcx, qword [rsi + 0x160]
test rcx, rcx
je 0x14001fedf
test rdx, rdx
je 0x140020081
mov eax, dword [rsi + 0x1f0]
test eax, eax
jne 0x14001ff26
mov r11d, dword [rsi + 0x88]
mov r8d, 0x1f123bb5
mov r10, qword [rbx]
mov r9, r13
test r10, r10
je 0x14001ff55
movzx eax, r8w
imul ecx, eax, 0x4650
shr r8d, 0x10
add r8d, ecx
mov al, r8b
xor al, r11b
mov byte [r9 + rdx], al
inc r9
cmp r9, r10
jb 0x14001ff01
jmp 0x14001ff55
cmp eax, 0x40
jb 0x14001ff44
movabs rdx, 0x8000000000000000
cmp rcx, rdx
jbe 0x14001ff44
mov eax, 0x80070057
jmp 0x1400203d8
mov r8d, dword [rsi + 0x88]
mov edx, eax
mov rcx, r15
call fcn.1400203ec
mov rdx, qword [rsi + 0x188]
mov rcx, qword [r15]
call fcn.14005a7f0
mov dword [rsi + 0x158], eax
mov rax, qword [r15]
mov qword [rsi + 0x170], rax
cmp qword [rsi + 0x140], r13
jne 0x14001ffcd
mov ecx, 0x30
call fcn.14005aee0
mov rbx, rax
mov qword [rbp + 0x48], rax
mov dword [rax + 8], r13d
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], r13
lea rax, [0x140071340]
mov qword [rbx], rax
mov qword [rsi + 0x138], rbx
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + VariantCopy]
mov rcx, qword [rsi + 0x140]
test rcx, rcx
je 0x14001ffc6
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov qword [rsi + 0x140], rbx
mov rdi, qword [rsi + 0x138]
mov r15d, InitCommonControls
add rdi, r15
mov rcx, qword [rdi]
lea rbx, [rdi + 8]
test rcx, rcx
je 0x14001ffee
cmp r14, qword [rbx]
je 0x14002000c
call fcn.14005a400
mov qword [rbx], r13
mov qword [rdi], r13
mov rcx, r14
call fcn.14005a3e0
mov qword [rdi], rax
test rax, rax
je 0x14002000c
mov qword [rbx], r14
test r14, r14
je 0x14002001e
mov rax, qword [rsi + 0x138]
cmp qword [rax + 0x10], r13
je 0x140020081
cmp qword [rsi + 0x58], r13
je 0x1400200bc
mov rdi, qword [rsi + 0x160]
mov rax, qword [rsi + 0x190]
lea rbx, [rsi + 0x198]
test rax, rax
je 0x140020047
cmp rdi, qword [rbx]
je 0x140020070
mov rcx, rax
call fcn.14005a400
mov qword [rbx], r13
mov qword [rsi + 0x190], r13
mov rcx, rdi
call fcn.14005a3e0
mov qword [rsi + 0x190], rax
test rax, rax
je 0x140020070
mov qword [rbx], rdi
mov r8, qword [rsi + 0x160]
test r8, r8
je 0x14002008b
test rax, rax
jne 0x14002008b
mov eax, 0x8007000e
jmp 0x1400203d8
mov rcx, qword [rsi + 0x138]
mov rdx, qword [rsi + 0x170]
mov rcx, qword [rcx + 0x10]
call fcn.14005c0a0
mov r8, qword [rsi + 0x160]
mov rdx, qword [rsi + 0x170]
mov rcx, qword [rsi + 0x190]
call fcn.14005c0a0
cmp qword [rsi + 0x1e8], r13
jne 0x14002010d
mov ecx, 0x28
call fcn.14005aee0
mov rbx, rax
mov qword [rbp + 0x48], rax
mov dword [rax + 8], r13d
lea rax, [0x140070b28]
mov qword [rbx], rax
mov qword [rsi + 0x1e0], rbx
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + VariantCopy]
mov rcx, qword [rsi + 0x1e8]
test rcx, rcx
je 0x140020106
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
mov qword [rsi + 0x1e8], rbx
mov rcx, qword [rsi + 0x1e0]
lea rax, [rsi + 0x1a0]
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x20], r13
mov qword [rcx + 0x18], 0x40
mov qword [rbp + 0x60], r13
mov rbx, qword [rsi + 0x58]
test rbx, rbx
jne 0x140020141
mov rbx, qword [rsi + 0x50]
test rbx, rbx
je 0x14002014a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x50], r13
mov rax, qword [rbx]
lea r8, [rbp + 0x50]
lea rdx, [0x1400750c8]
mov rcx, rbx
call qword [rax]
mov rdi, qword [rbp + 0x50]
test rdi, rdi
je 0x140020262
mov rax, qword [rsi + 0x160]
mov qword [rbp - 0x28], rax
lea rcx, [rsi + 0x30]
lea r8, [rbp + 0x48]
mov edx, dword [rsi + 0x28]
call fcn.14002061c
mov qword [rbp + 0x48], rax
neg rax
sbb r9, r9
lea rax, [rbp + 0x48]
and r9, rax
lea r8, [rbp - 0x28]
mov rdx, rdi
mov rcx, r12
call fcn.140010c5c
mov r14d, eax
test eax, eax
jne 0x14002036f
mov qword [rbp + 0x58], r13
mov rax, qword [rbx]
lea r8, [rbp + 0x58]
lea rdx, [0x1400750f0]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x1400201f0
mov rax, qword [rcx]
mov rdx, qword [rsi + 0x1e8]
call qword [rax + 0x18]
mov r14d, eax
test eax, eax
jne 0x14002035f
mov qword [rbp + 0x48], r13
mov rax, qword [rbx]
lea r8, [rbp + 0x48]
lea rdx, [0x140075220]
mov rcx, rbx
call qword [rax]
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x14002039c
mov rax, qword [rcx]
lea rdx, [rsi + 0xcc]
mov r8d, r15d
call qword [rax + 0x18]
mov r14d, eax
test eax, eax
jne 0x14002034f
mov r8, r15
xor edx, edx
lea rcx, [rbp - 0x18]
call fcn.14005d6c0
mov rcx, qword [rsi + 0x58]
test rcx, rcx
je 0x140020299
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [rsi + 0x58]
mov rax, qword [rcx]
mov r8d, r15d
lea rdx, [rbp - 0x18]
call qword [rax + 0x20]
jmp 0x140020398
mov edx, r13d
cmp dword [r12 + 8], r13d
jbe 0x1400201b8
mov r8, qword [r12]
mov eax, edx
mov rcx, qword [r8 + rax*8]
cmp byte [rcx + 4], r13b
je 0x14002028e
inc edx
cmp edx, dword [r12 + 8]
jb 0x140020274
jmp 0x1400201b8
mov r14d, 0x80070057
jmp 0x140020373
mov ecx, 0x28
call fcn.14005aee0
mov rdi, rax
mov qword [rbp - 0x28], rax
mov dword [rax + 8], r13d
lea rax, [0x140071320]
mov qword [rdi], rax
mov qword [rbp - 0x28], rdi
mov rcx, rdi
mov rdx, qword [fcn.14000fa68]
call rdx
nop
lea rax, [rbp - 0x18]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x20], r15
mov qword [rdi + 0x18], r13
mov ecx, 0x20
call fcn.14005aee0
mov r15, rax
mov qword [rbp - 0x20], rax
mov dword [rax + 8], r13d
lea rax, [0x140071360]
mov qword [r15], rax
mov byte [r15 + 0xc], 1
mov qword [rbp - 0x20], r15
mov rcx, r15
mov rdx, qword [fcn.14000fa68]
call rdx
nop
or dword [r15 + 0x10], 0xffffffff
mov qword [r15 + 0x18], r13
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8, r15
mov rdx, rdi
call qword [rax + 0x18]
mov r14d, eax
test eax, eax
je 0x140020384
mov rax, qword [r15]
mov rcx, r15
call qword [rax + InitCommonControls]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x14002035f
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x14002036f
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rdi, qword [rbp + 0x50]
test rdi, rdi
je 0x140020382
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + InitCommonControls]
nop
jmp 0x1400203cb
mov rax, qword [r15]
mov rcx, r15
call qword [rax + InitCommonControls]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x1400203a8
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x1400203b8
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov rcx, qword [rbp + 0x50]
test rcx, rcx
je 0x1400203c8
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
nop
mov r14d, r13d
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + InitCommonControls]
nop
mov eax, r14d
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret