Function at 0x10067390
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [esi + 0x44]
mov dword [esi + 0xb8], 9
call fcn.1003b9f0
mov edx, dword [esi + 0x34]
xor ebx, ebx
cmp edx, ebx
je 0x100673db
mov ecx, dword [edx + 0x10]
cmp ecx, ebx
je 0x100673db
cmp dword [ecx + 0x34], ebx
sete al
cmp al, bl
sete al
movzx eax, al
neg eax
sbb eax, eax
and eax, ecx
mov dword [esp + 0x20], eax
jmp 0x100673df
mov dword [esp + 0x20], ebx
cmp edx, ebx
je 0x10067404
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x10067404
cmp dword [ecx + 0x34], ebx
sete al
cmp al, bl
sete al
movzx eax, al
neg eax
sbb eax, eax
and eax, ecx
mov dword [esp + 0x2c], eax
jmp 0x10067408
mov dword [esp + 0x2c], ebx
mov eax, dword [esi + 0x38]
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x3c], eax
call fcn.10069b30
mov eax, dword [0x100bc66c]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ebx
call fcn.100691e0
lea eax, [esp + 0x38]
push eax
call fcn.100690f0
mov ecx, dword [esi + 0x38]
mov edi, dword [ecx + 0xcc]
mov ecx, dword [esp + 0x38]
add ecx, 0x4c
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
cmp ecx, ebx
je 0x10067488
mov edx, dword [ecx + 0x10]
sub edx, dword [ecx + 0xc]
sar edx, 3
jmp 0x1006748a
xor edx, edx
xor ecx, ecx
cmp edx, ebx
setg cl
mov dword [esp + 0x24], ebx
mov esi, ecx
mov dword [esp + 0x28], esi
cmp eax, ebx
jne 0x100674a3
cmp esi, ebx
je 0x100674bb
mov dword [esp + 0x24], 1
cmp eax, ebx
jne 0x1006752d
cmp esi, ebx
je 0x100674bb
mov dword [esp + 0x24], 3
cmp edi, ebx
jne 0x10067748
cmp dword [esp + 0x1c], ebx
jne 0x10067688
push 0x12f
push ecx
call fcn.1004e950
add esp, 4
push eax
mov eax, 0xa
lea ecx, [esp + 0x24]
call fcn.1004e840
mov edi, eax
lea eax, [esp + 0xc]
call fcn.10003840
mov eax, dword [esp + 0x1c]
lea edx, [eax - 0xc]
cmp edx, 0x100bc65c
je 0x10067522
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x10067522
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.1008441c
add esp, 4
push ebx
push 0x12f
jmp 0x100676e3
cmp dword [ebp + 0xc], ebx
je 0x10067581
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
cmp eax, ebx
je 0x10067581
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
je 0x10067581
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6c]
push eax
call edx
cmp eax, 4
jne 0x10067581
call fcn.1004e950
push 0xa
call fcn.1004e8e0
cmp eax, ebx
jne 0x10067570
mov ebx, 0x100a7638
jmp 0x100675a9
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push ebx
push ebx
push 0x131
push eax
call edx
jmp 0x100675a7
call fcn.1004e950
push 0xa
call fcn.1004e8e0
cmp eax, ebx
jne 0x10067598
mov ebx, 0x100a7638
jmp 0x100675a9
mov edx, dword [eax]
push ebx
push ebx
push 0x12c
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, eax
lea edi, [esp + 0x1c]
call fcn.100036f0
lea eax, [esp + 0xc]
call fcn.10003840
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 0xc]
cmp ecx, 0x100bc65c
je 0x100675e1
lea edi, [eax - 0xc]
push edi
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x100675e1
push edi
call fcn.1008441c
add esp, 4
mov eax, 1
test byte [0x100c7d6c], al
jne 0x10067612
or dword [0x100c7d6c], eax
call fcn.1004ecd0
xor eax, eax
push 0x100a3500
mov dword [0x100c7b34], eax
mov dword [0x100c7b38], eax
call fcn.1008416d
add esp, 4
call fcn.1004e130
push 0xa
mov eax, 0x100c7b14
call fcn.1004e8e0
test eax, eax
jne 0x1006762e
mov ebx, 0x100a7638
jmp 0x10067641
mov edx, dword [eax]
push 0
push 0
push 0x12c
push eax
mov eax, dword [edx + 8]
call eax
mov ebx, eax
lea edi, [esp + 0x1c]
call fcn.100036f0
lea eax, [esp + 0x10]
call fcn.10003840
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 0xc]
cmp ecx, 0x100bc65c
je 0x10067679
lea edi, [eax - 0xc]
push edi
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x10067679
push edi
call fcn.1008441c
add esp, 4
mov dword [esp + 0x14], 5
xor ebx, ebx
jmp 0x1006797c
push 0x130
push ecx
call fcn.1004e950
add esp, 4
push eax
mov eax, 0xa
lea ecx, [esp + 0x24]
call fcn.1004e840
mov edi, eax
lea eax, [esp + 0xc]
call fcn.10003840
mov eax, dword [esp + 0x1c]
lea edx, [eax - 0xc]
cmp edx, 0x100bc65c
je 0x100676dd
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x100676dd
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.1008441c
add esp, 4
push ebx
push 0x130
call fcn.1004e950
push eax
mov eax, 0xa
lea ecx, [esp + 0x28]
call fcn.1004e890
mov edi, eax
lea eax, [esp + 0x10]
call fcn.10003840
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 0xc]
cmp ecx, 0x100bc65c
je 0x1006772f
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x1006772f
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.1008441c
add esp, 4
mov dword [esp + 0x14], 5
cmp esi, ebx
je 0x1006797c
mov edx, dword [ebp + 8]
push edx
jmp 0x10067977
cmp dword [esp + 0x1c], ebx
jne 0x10067806
push 0x12d
push ecx
call fcn.1004e950
add esp, 4
push eax
mov eax, 0xa
lea ecx, [esp + 0x20]
call fcn.1004e840
mov edi, eax
lea eax, [esp + 0xc]
call fcn.10003840
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x100bc65c
je 0x100677a7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x100677a7
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
push eax
call fcn.1008441c
add esp, 4
push ebx
push 0x12d
call fcn.1004e950
push eax
mov eax, 0xa
lea ecx, [esp + 0x24]
call fcn.1004e890
mov edi, eax
lea eax, [esp + 0x10]
call fcn.10003840
mov eax, dword [esp + 0x18]
lea edx, [eax - 0xc]
cmp edx, 0x100bc65c
je 0x100678ae
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x100678ae
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
push eax
call fcn.1008441c
add esp, 4
jmp 0x100678ae
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add ecx, eax
jne 0x1006784b
push 0x132
push ecx
call fcn.1004e950
add esp, 4
push eax
mov eax, 0xa
lea ecx, [esp + 0x20]
call fcn.1004e840
mov edi, eax
lea eax, [esp + 0xc]
call fcn.10003840
lea esi, [esp + 0x18]
call fcn.100072c0
push ebx
push 0x132
jmp 0x10067882
push 0x12e
push ecx
call fcn.1004e950
add esp, 4
push eax
mov eax, 0xa
lea ecx, [esp + 0x20]
call fcn.1004e840
mov edi, eax
lea eax, [esp + 0xc]
call fcn.10003840
lea esi, [esp + 0x18]
call fcn.100072c0
push ebx
push 0x12e
call fcn.1004e950
push eax
mov eax, 0xa
lea ecx, [esp + 0x24]
call fcn.1004e890
mov edi, eax
lea eax, [esp + 0x10]
call fcn.10003840
lea esi, [esp + 0x18]
call fcn.100072c0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], 7
cmp esi, ebx
je 0x1006797c
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x38]
mov dword [esp + 0x18], ebx
call fcn.10063a60
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x2c]
cmp ecx, ebx
je 0x10067934
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0xc]
push ecx
call eax
mov esi, eax
cmp esi, ebx
je 0x10067934
mov ecx, dword [esi]
mov eax, dword [ecx + 0x98]
lea edx, [esp + 0x18]
push edx
push 0x100af2e4
push esi
call eax
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x1006790d
push eax
lea eax, [esp + 0x10]
call fcn.100035a0
mov ecx, dword [esi]
mov eax, dword [ecx + 0x98]
lea edx, [esp + 0x18]
push edx
push 0x100af30c
push esi
call eax
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x10067934
push eax
lea eax, [esp + 0x14]
call fcn.100035a0
cmp dword [esp + 0x1c], ebx
jne 0x1006796b
push 0x12c
push ecx
call fcn.1004e950
add esp, 4
push eax
mov eax, 0xa
lea ecx, [esp + 0x24]
call fcn.1004e840
mov edi, eax
lea eax, [esp + 0xc]
call fcn.10003840
lea esi, [esp + 0x1c]
call fcn.100072c0
mov ecx, dword [ebp + 8]
mov dword [esp + 0x14], 5
push ecx
call fcn.10067ea0
mov edx, dword [ebp + 8]
mov dword [esp + 0x1c], ebx
push edx
lea esi, [esp + 0x14]
lea edi, [esp + 0x10]
lea ebx, [esp + 0x20]
call fcn.10067c10
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test esi, esi
je 0x10067a64
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
push edi
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.10037e00
cmp edi, 1
jne 0x100679ec
call fcn.100125d0
push 4
lea edx, [esp + 0x28]
push edx
push 4
push 0x100a8874
push 0x100a8880
inc eax
push reloc.OLEAUT32.DLL_SysReAllocString
mov dword [esp + 0x3c], eax
call dword [sym.imp.SHLWAPI.DLL_SHSetValueW]
cmp dword [ebx - 0xc], 0
push ecx
lea ecx, [ebx - 0xc]
mov eax, esp
jl 0x10067a03
push ecx
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
jmp 0x10067a11
mov ecx, dword [0x100bc66c]
push ebx
mov dword [eax], ecx
call fcn.100035a0
mov edx, dword [esp + 0x10]
cmp dword [edx - 0xc], 0
push ecx
lea ecx, [edx - 0xc]
mov eax, esp
jl 0x10067a2c
push ecx
mov dword [eax], edx
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
jmp 0x10067a3a
mov ecx, dword [0x100bc66c]
push edx
mov dword [eax], ecx
call fcn.100035a0
push esi
call fcn.10038300
cmp dword [esp + 0x34], 0
jne 0x10067a5c
cmp dword [esp + 0x30], 0
je 0x10067a5c
cmp dword [esp + 0x28], 0
jne 0x10067a5c
mov eax, 1
jmp 0x10067a5e
xor eax, eax
push eax
call fcn.10039040
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x10067ad5
mov eax, dword [esp + 0x14]
mov ecx, esi
call fcn.10042d20
cmp dword [ebx - 0xc], 0
push ecx
lea ecx, [ebx - 0xc]
mov eax, esp
jl 0x10067a8e
push ecx
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
jmp 0x10067a9c
mov edx, dword [0x100bc66c]
push ebx
mov dword [eax], edx
call fcn.100035a0
mov edi, dword [esp + 0x10]
cmp dword [edi - 0xc], 0
push ecx
lea ecx, [edi - 0xc]
mov eax, esp
jl 0x10067abe
push ecx
mov dword [eax], edi
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
mov eax, esi
call fcn.100451a0
jmp 0x10067ad9
mov ecx, dword [0x100bc66c]
push edi
mov dword [eax], ecx
call fcn.100035a0
mov eax, esi
call fcn.100451a0
jmp 0x10067ad9
mov edi, dword [esp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
test eax, eax
je 0x10067af5
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x10067af5
mov eax, dword [ecx + 0x34]
neg eax
sbb eax, eax
and eax, ecx
jmp 0x10067af7
xor eax, eax
test eax, eax
je 0x10067b27
mov esi, dword [eax + 0x11c]
test esi, esi
je 0x10067b27
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 0x1c]
lea ecx, [esi + 0x30]
push 1
call edx
cmp dword [esp + 0x34], 0
jne 0x10067b27
cmp dword [esp + 0x30], 0
jne 0x10067b27
mov eax, esi
call fcn.1002d7a0
lea eax, [ebx - 0xc]
cmp eax, 0x100bc65c
je 0x10067b48
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x10067b48
push esi
call fcn.1008441c
add esp, 4
lea ecx, [edi - 0xc]
cmp ecx, 0x100bc65c
je 0x10067b6a
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x10067b6a
push esi
call fcn.1008441c
add esp, 4
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10067b7a
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10067b8a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8