Function at 0x14018be20
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x120]
sub rsp, 0x220
mov rax, qword [0x1402fa010]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov dword [rbp - 0x48], r8d
mov ebx, edx
xor esi, esi
mov dword [rsp + 0x50], esi
mov qword [rbp + 0xa0], rsi
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d339
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp + 0xa0], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], rax
mov edx, ebx
lea rcx, [rbp + 0xc0]
call fcn.140053e20
nop
mov qword [rbp + 0xa8], rsi
lea rcx, [rbp + 0xa8]
call fcn.140022cc0
nop
mov qword [rbp + 0x98], rsi
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d344
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp + 0x98], rax
mov qword [rbp + 0x90], rsi
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d34f
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp + 0x90], rax
lea rax, [rbp - 0x80]
mov qword [rbp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rbp + 0x40], rax
lea rax, [rbp - 0x50]
mov qword [rbp + 0x38], rax
lea rax, [rsp + 0x68]
mov qword [rbp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rbp - 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x38], rax
lea rax, [rbp + 0x48]
mov qword [rbp - 0x40], rax
lea rax, [rbp + 0x50]
mov qword [rbp + 0x18], rax
lea rax, [rbp - 0x68]
mov qword [rbp - 0x70], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x60], rax
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d35a
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x80], rax
lea rbx, [0x140262520]
mov rdx, rbx
lea rcx, [rbp - 0x80]
call fcn.140018bd0
lea r13, [rsi - 1]
test al, al
jne 0x14018bff8
mov r8, r13
nop word [rax + rax]
inc r8
cmp word [rbx + r8*2], 0
jne 0x14018bfe0
mov rdx, rbx
lea rcx, [rbp - 0x80]
call fcn.140018f70
nop
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d365
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x58], rax
mov rdx, rbx
lea rcx, [rbp - 0x58]
call fcn.140018bd0
test al, al
jne 0x14018c049
mov r8, r13
inc r8
cmp word [rbx + r8*2], 0
jne 0x14018c031
mov rdx, rbx
lea rcx, [rbp - 0x58]
call fcn.140018f70
nop
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d370
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x50], rax
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.140018bd0
test al, al
jne 0x14018c09a
mov r8, r13
inc r8
cmp word [rbx + r8*2], 0
jne 0x14018c082
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.140018f70
nop
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d37b
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rsp + 0x68], rax
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140018bd0
test al, al
jne 0x14018c0ee
mov r8, r13
inc r8
cmp word [rbx + r8*2], 0
jne 0x14018c0d5
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140018f70
nop
call fcn.1401285c0
lea rcx, [0x1402620b8]
lea rdi, [0x1402620c0]
mov rbx, rdi
cmp dword [rax + 0x88], 0
cmovne rbx, rcx
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d386
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.140018bd0
test al, al
jne 0x14018c169
mov r8, r13
nop word [rax + rax]
inc r8
cmp word [rbx + r8*2], 0
jne 0x14018c150
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.140018f70
nop
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d391
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rsp + 0x78], rax
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.140018bd0
test al, al
jne 0x14018c1bd
mov r8, r13
inc r8
cmp word [rdi + r8*2], 0
jne 0x14018c1a4
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.140018f70
nop
lea rcx, [rbp + 0x58]
call fcn.140022bf0
mov r15, rax
mov qword [rsp + 0x60], rsi
mov rcx, qword [rax]
mov rcx, qword [rcx - 0x18]
test rcx, rcx
je 0x14018c1ef
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018c213
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d39c
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
mov r12d, 0x40
mov dword [rsp + 0x50], r12d
lea rax, str.icons_
mov rdi, r13
nop
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14018c240
mov r15, qword [r15]
movsxd r14, dword [r15 - 0x10]
lea esi, [r14 + rdi]
test esi, esi
js 0x14018d32e
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x14018c27f
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.140018ec0
mov rbx, qword [rsp + 0x60]
add r14, r14
je 0x14018c2b5
test rbx, rbx
je 0x14018c2a5
mov r8, r14
mov rcx, rbx
test r15, r15
je 0x14018c29e
mov rdx, r15
call fcn.1401f61a0
jmp 0x14018c2b5
xor edx, edx
call fcn.1401f6840
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
movsxd r8, edi
add r8, r8
lea rcx, [r14 + rbx]
je 0x14018c2e4
test rcx, rcx
jne 0x14018c2d8
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018c2e4
lea rdx, str.icons_
call fcn.1401f61a0
cmp esi, dword [rbx - 0xc]
jg 0x14018d32e
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor esi, esi
mov word [rbx + rax*2], si
call fcn.140163500
lea r8, [rax + 0x1b0]
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x60]
call fcn.140029020
nop
lea r8, [0x1402624f4]
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.1400179d0
mov rbx, rax
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d3a7
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x68], rax
lea rdi, [0x140262520]
mov rdx, rdi
lea rcx, [rbp - 0x68]
call fcn.140018bd0
test al, al
jne 0x14018c388
mov r8, r13
nop word [rax + rax]
inc r8
cmp word [rdi + r8*2], 0
jne 0x14018c370
mov rdx, rdi
lea rcx, [rbp - 0x68]
call fcn.140018f70
nop
mov rcx, qword [rbp + 0xa8]
add rcx, 0xffffffffffffffe8
call fcn.1400191a0
add rax, 0x18
mov qword [rbp + 0x20], rax
lea r9, [rbp - 0x68]
lea r8, [rbp + 0x20]
lea rdx, [rbp + 0x50]
call fcn.1400541b0
nop
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x40], rcx
lea rcx, [rbp - 0x58]
mov qword [rsp + 0x38], rcx
lea rcx, [rbp - 0x50]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x78]
mov r8, rbx
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.140054830
nop
mov rdx, qword [rbp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018c41e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
and r12d, 0xffffffbf
mov dword [rsp + 0x50], r12d
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018c44e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018c473
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
mov rax, rsi
mov qword [rbp - 0x30], rax
lea r14, [0x1402fef70]
lea rcx, [rbp - 0x78]
mov qword [rbp + 0x68], rcx
mov rdi, rax
shl rdi, 5
mov qword [rbp - 0x60], rdi
lea rax, [rdi + r14]
mov qword [rbp + 0x28], rax
mov rbx, qword [rax]
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d323
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x78], rax
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.140018bd0
test al, al
jne 0x14018c4fa
test rbx, rbx
jne 0x14018c4df
mov r8d, esi
jmp 0x14018c4ed
mov r8, r13
inc r8
cmp word [rbx + r8*2], 0
jne 0x14018c4e2
mov rdx, rbx
lea rcx, [rbp - 0x78]
call fcn.140018f70
nop
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0x30]
call fcn.14018bc90
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0xa0]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14018c577
cmp dword [rbx + 0x10], 0
jl 0x14018c566
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14018c566
call fcn.1400191a0
mov rdi, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14018c555
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x140038716.0]
lea rax, [rdi + 0x18]
mov qword [rbp + 0xa0], rax
mov rdi, qword [rbp - 0x60]
jmp 0x14018c577
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0xa0]
call fcn.140018f70
nop
mov rdx, qword [rbp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018c59c
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d44c
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x28], rax
lea rdx, [0x140265c84]
lea rcx, [rbp - 0x28]
call fcn.140018bd0
test al, al
jne 0x14018c5ed
mov r8d, 1
lea rdx, [0x140265c84]
lea rcx, [rbp - 0x28]
call fcn.140018f70
nop
mov r15, qword [rdi + r14 + 8]
mov qword [rbp - 0x20], rsi
mov rdi, qword [rbp - 0x28]
lea rax, [rdi - 0x18]
mov qword [rsp + 0x58], rax
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x14018c621
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018c645
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d441
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x20], rbx
mov r13d, dword [rsp + 0x50]
or r13d, 1
mov dword [rsp + 0x50], r13d
test r15, r15
je 0x14018c67f
mov rsi, 0xffffffffffffffff
inc rsi
cmp word [r15 + rsi*2], 0
jne 0x14018c674
movsxd r12, dword [rdi - 0x10]
lea r14d, [rsi + r12]
test r14d, r14d
js 0x14018d436
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x14018c6b2
mov edx, r14d
lea rcx, [rbp - 0x20]
call fcn.140018ec0
mov rbx, qword [rbp - 0x20]
add r12, r12
je 0x14018c6dc
test rbx, rbx
jne 0x14018c6ce
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018c6dc
mov r8, r12
mov rdx, rdi
mov rcx, rbx
call fcn.1401f61a0
movsxd r8, esi
add r8, r8
lea rcx, [r12 + rbx]
je 0x14018c713
test rcx, rcx
je 0x14018c703
test r15, r15
je 0x14018c6fc
mov rdx, r15
call fcn.1401f61a0
jmp 0x14018c713
xor edx, edx
call fcn.1401f6840
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
cmp r14d, dword [rbx - 0xc]
jg 0x14018d436
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
xor r14d, r14d
mov word [rbx + rax*2], r14w
lea rsi, [rbx - 0x18]
mov rdi, qword [rbp + 0x98]
add rdi, 0xffffffffffffffe8
cmp rsi, rdi
je 0x14018c7a0
cmp dword [rdi + 0x10], r14d
jl 0x14018c78d
mov rax, qword [rdi]
cmp qword [rsi], rax
jne 0x14018c78d
mov rcx, rsi
call fcn.1400191a0
mov rbx, rax
mov ecx, 0xffffffff
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x14018c77b
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
mov rax, qword [r8 + 8]
call qword [case.0x140038716.0]
lea rax, [rbx + 0x18]
mov qword [rbp + 0x98], rax
mov r13d, dword [rsp + 0x50]
jmp 0x14018c7a0
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp + 0x98]
call fcn.140018f70
and r13d, 0xfffffffe
mov dword [rsp + 0x50], r13d
mov rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x14018c7d0
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov eax, ebx
mov rdx, qword [rsp + 0x58]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018c7f1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d44c
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x18], rax
lea rdx, str..ico
lea rcx, [rbp - 0x18]
call fcn.140018bd0
test al, al
jne 0x14018c842
mov r8d, 4
lea rdx, str..ico
lea rcx, [rbp - 0x18]
call fcn.140018f70
nop
mov r15, qword [rbp - 0x60]
lea rax, [0x1402fef70]
mov r15, qword [r15 + rax + 8]
mov qword [rbp - 0x10], r14
mov rdi, qword [rbp - 0x18]
lea r13, [rdi - 0x18]
mov rcx, qword [r13]
test rcx, rcx
je 0x14018c87c
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018c8a0
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d42b
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x10], rbx
mov r12d, dword [rsp + 0x50]
or r12d, 0x20
mov dword [rsp + 0x50], r12d
mov eax, dword [rdi - 0x10]
mov dword [rsp + 0x58], eax
test r15, r15
jne 0x14018c8d4
mov esi, r14d
jmp 0x14018c8eb
mov rsi, 0xffffffffffffffff
nop dword [rax + rax]
inc rsi
cmp word [r15 + rsi*2], 0
jne 0x14018c8e0
lea r14d, [rax + rsi]
test r14d, r14d
js 0x14018d420
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x14018c91a
mov edx, r14d
lea rcx, [rbp - 0x10]
call fcn.140018ec0
mov rbx, qword [rbp - 0x10]
movsxd rax, esi
lea rsi, [rax + rax]
test rsi, rsi
je 0x14018c957
test rbx, rbx
je 0x14018c947
mov r8, rsi
mov rcx, rbx
test r15, r15
je 0x14018c940
mov rdx, r15
call fcn.1401f61a0
jmp 0x14018c957
xor edx, edx
call fcn.1401f6840
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
movsxd r8, dword [rsp + 0x58]
add r8, r8
lea rcx, [rsi + rbx]
je 0x14018c984
test rcx, rcx
jne 0x14018c97c
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018c984
mov rdx, rdi
call fcn.1401f61a0
cmp r14d, dword [rbx - 0xc]
jg 0x14018d420
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
xor esi, esi
mov word [rbx + rax*2], si
lea rsi, [rbx - 0x18]
mov rdi, qword [rbp + 0x90]
add rdi, 0xffffffffffffffe8
cmp rsi, rdi
je 0x14018ca0f
cmp dword [rdi + 0x10], 0
jl 0x14018c9fc
mov rax, qword [rdi]
cmp qword [rsi], rax
jne 0x14018c9fc
mov rcx, rsi
call fcn.1400191a0
mov rbx, rax
mov ecx, 0xffffffff
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x14018c9ea
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
mov rax, qword [r8 + 8]
call qword [case.0x140038716.0]
lea rax, [rbx + 0x18]
mov qword [rbp + 0x90], rax
mov r12d, dword [rsp + 0x50]
jmp 0x14018ca0f
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp + 0x90]
call fcn.140018f70
and r12d, 0xffffffdf
mov dword [rsp + 0x50], r12d
mov rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x14018ca3f
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov eax, ebx
lock xadd dword [r13 + 0x10], eax
sub eax, 1
jg 0x14018ca60
mov rcx, qword [r13]
mov rax, qword [rcx]
mov rdx, r13
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
lea rcx, [rbp + 0x40]
call fcn.140022bf0
mov rdi, rax
xor r12d, r12d
mov qword [rbp - 8], r12
mov rcx, qword [rax]
mov rcx, qword [rcx - 0x18]
test rcx, rcx
je 0x14018ca94
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018cab8
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d415
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 8], rbx
mov r13d, dword [rsp + 0x50]
or r13d, 0x10
mov dword [rsp + 0x50], r13d
mov r14, qword [rdi]
movsxd r15, dword [r14 - 0x10]
lea esi, [r15 + 6]
test esi, esi
js 0x14018d40a
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x14018cb0e
mov edx, esi
lea rcx, [rbp - 8]
call fcn.140018ec0
mov rbx, qword [rbp - 8]
lea rdi, [r15 + r15]
test rdi, rdi
je 0x14018cb48
test rbx, rbx
je 0x14018cb38
mov r8, rdi
mov rcx, rbx
test r14, r14
je 0x14018cb31
mov rdx, r14
call fcn.1401f61a0
jmp 0x14018cb48
xor edx, edx
call fcn.1401f6840
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
lea rcx, [rbx + rdi]
test rcx, rcx
jne 0x14018cb63
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018cb78
movsd xmm0, qword [str.icons_]
movsd qword [rcx], xmm0
mov eax, dword [0x1402a15f8]
mov dword [rcx + 8], eax
cmp esi, dword [rbx - 0xc]
jg 0x14018d40a
mov dword [rbx - 0x10], esi
mov word [rbx + r15*2 + 0xc], r12w
call fcn.140163500
mov rsi, rax
mov qword [rbp], r12
lea rax, [rbx - 0x18]
mov qword [rbp + 0x38], rax
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x14018cbbc
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018cbe0
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d3ff
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rdi, [rax + 0x18]
mov qword [rbp], rdi
or r13d, 8
mov dword [rsp + 0x50], r13d
mov r15, qword [rsi + 0x1b0]
movsxd r12, dword [r15 - 0x10]
movsxd r14, dword [rbx - 0x10]
lea esi, [r12 + r14]
test esi, esi
js 0x14018d3f4
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, esi
or eax, ecx
jge 0x14018cc39
mov edx, esi
lea rcx, [rbp]
call fcn.140018ec0
mov rdi, qword [rbp]
add r14, r14
je 0x14018cc63
test rdi, rdi
jne 0x14018cc55
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018cc63
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.1401f61a0
mov r8, r12
add r8, r8
lea rcx, [rdi + r14]
je 0x14018cc9a
test rcx, rcx
je 0x14018cc8a
test r15, r15
je 0x14018cc83
mov rdx, r15
call fcn.1401f61a0
jmp 0x14018cc9a
xor edx, edx
call fcn.1401f6840
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
cmp esi, dword [rdi - 0xc]
jg 0x14018d3f4
mov dword [rdi - 0x10], esi
movsxd rax, esi
xor r12d, r12d
mov word [rdi + rax*2], r12w
mov qword [rbp + 8], r12
lea rax, [rdi - 0x18]
mov qword [rsp + 0x58], rax
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x14018ccdc
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018cd00
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d3e9
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rbp + 8], rbx
or r13d, 4
mov dword [rsp + 0x50], r13d
movsxd r15, dword [rdi - 0x10]
lea r14d, [r15 + 1]
test r14d, r14d
js 0x14018d3de
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x14018cd51
mov edx, r14d
lea rcx, [rbp + 8]
call fcn.140018ec0
mov rbx, qword [rbp + 8]
lea rsi, [r15 + r15]
test rsi, rsi
je 0x14018cd7f
test rbx, rbx
jne 0x14018cd71
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018cd7f
mov r8, rsi
mov rdx, rdi
mov rcx, rbx
call fcn.1401f61a0
lea rax, [rsi + rbx]
test rax, rax
jne 0x14018cd9a
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018cd9f
mov word [rax], 0x5c
cmp r14d, dword [rbx - 0xc]
jg 0x14018d3de
mov dword [rbx - 0x10], r14d
mov word [rbx + r15*2 + 2], r12w
mov qword [rbp + 0x10], r12
lea r12, [rbx - 0x18]
mov rcx, qword [r12]
test rcx, rcx
je 0x14018cdd9
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x14018cdfd
call fcn.1400195b0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x14018d3d3
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rdi, [rax + 0x18]
mov qword [rbp + 0x10], rdi
or r13d, 2
mov dword [rsp + 0x50], r13d
mov rsi, qword [rbp + 0x90]
movsxd r13, dword [rsi - 0x10]
movsxd r15, dword [rbx - 0x10]
lea r14d, [r15 + r13]
test r14d, r14d
js 0x14018d3c8
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, r14d
or eax, ecx
jge 0x14018ce59
mov edx, r14d
lea rcx, [rbp + 0x10]
call fcn.140018ec0
mov rdi, qword [rbp + 0x10]
add r15, r15
je 0x14018ce83
test rdi, rdi
jne 0x14018ce75
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018ce83
mov r8, r15
mov rdx, rbx
mov rcx, rdi
call fcn.1401f61a0
mov r8, r13
add r8, r8
lea rcx, [r15 + rdi]
je 0x14018ceae
test rcx, rcx
jne 0x14018cea6
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x14018ceae
mov rdx, rsi
call fcn.1401f61a0
cmp r14d, dword [rdi - 0xc]
jg 0x14018d3c8
mov dword [rdi - 0x10], r14d
movsxd rax, r14d
xor esi, esi
mov word [rdi + rax*2], si
mov rcx, rdi
call fcn.1400247e0
mov ebx, eax
and dword [rsp + 0x50], 0xfffffffd
lea rdx, [rdi - 0x18]
mov r13, 0xffffffffffffffff
mov ecx, r13d
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x14018cefc
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
and dword [rsp + 0x50], 0xfffffffb
mov eax, r13d
lock xadd dword [r12 + 0x10], eax
sub eax, 1
jg 0x14018cf24
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
and dword [rsp + 0x50], 0xfffffff7
mov eax, r13d
mov rdx, qword [rsp + 0x58]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018cf4b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
and dword [rsp + 0x50], 0xffffffef
mov eax, r13d
mov rdx, qword [rbp + 0x38]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018cf72
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018cf97
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
test ebx, ebx
jne 0x14018cfb2
lea r8d, [rbx + 0xc]
lea rdx, str.Bandizip.ico
lea rcx, [rbp + 0x90]
call fcn.140018f70
mov rax, qword [rbp - 0x60]
lea r14, [0x1402fef70]
cmp dword [rax + r14 + 0x14], 0
je 0x14018d04c
lea rax, [rbp + 0x18]
mov qword [rbp + 0x70], rax
lea rax, [rbp - 0x40]
mov qword [rbp + 0x78], rax
lea rax, [rbp - 0x38]
mov qword [rbp + 0x80], rax
mov rcx, qword [rbp + 0x90]
add rcx, 0xffffffffffffffe8
call fcn.1400191a0
add rax, 0x18
mov qword [rbp + 0x18], rax
mov rcx, qword [rbp + 0xa0]
add rcx, 0xffffffffffffffe8
call fcn.1400191a0
add rax, 0x18
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp + 0x98]
add rcx, 0xffffffffffffffe8
call fcn.1400191a0
add rax, 0x18
mov qword [rbp - 0x38], rax
lea rax, [rbp + 0x18]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x38]
mov edx, dword [rbp - 0x48]
lea rcx, [rbp + 0xc0]
call fcn.140054a20
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14018d3bd
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x70], rax
lea rdx, [0x14029d8c8]
lea rcx, [rbp - 0x70]
call fcn.140018bd0
test al, al
jne 0x14018d09d
mov r8d, 3
lea rdx, [0x14029d8c8]
lea rcx, [rbp - 0x70]
call fcn.140018f70
nop
mov r8, qword [rbp + 0x28]
mov r8, qword [r8]
test r8, r8
je 0x14018d3b2
mov rax, qword [rbp - 0x70]
mov rcx, rax
sub r8, rax
nop word [rax + rax]
movzx ebx, word [rcx]
movzx edx, word [rcx + r8]
sub ebx, edx
jne 0x14018d0d4
add rcx, 2
test edx, edx
jne 0x14018d0c0
lea rdx, [rax - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018d0f5
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
test ebx, ebx
jne 0x14018d20d
mov qword [rbp + 0x88], rsi
mov qword [rbp + 0x88], rsi
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14018d11d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp + 0x88], rsi
lea rax, [rbp + 0x88]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
lea rdx, str.Bandizip.zip_shellexDropHandler_
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14018d1b1
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14018d163
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp + 0x88], rsi
lea rax, [rbp + 0xb0]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
lea rdx, str.Bandizip.zip_shellexDropHandler_
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x14018d1f4
cmp qword [rbp + 0x88], 0
je 0x14018d1f4
lea rbx, str.5B69A6B4_393B_459C_8EBB_214237A9E7AC
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, [0x140262520]
mov rcx, qword [rbp + 0x88]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
nop
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14018d206
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp + 0x88], rsi
mov rax, qword [rbp - 0x30]
inc rax
mov qword [rbp - 0x30], rax
cmp rax, 0x32
jl 0x14018c481
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1003
mov ecx, 0x8000000
call qword [sym.imp.SHELL32.dll_SHChangeNotify]
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
mov rdx, qword [rbp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018d26d
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018d296
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14018d2bf
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
lea rcx, [rbp + 0xc0]
call fcn.140054020
nop
mov rdx, qword [rbp + 0xa0]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x14018d2f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.1401f3bf0
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
int3
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
int3
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
int3
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
int3
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
int3
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
int3
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
int3