Function at 0x10fe460
Capabilities:
Delete registry value
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1142cad
mov eax, dword fs:[0]
push eax
sub esp, 0x19c
mov eax, dword [0x115f604]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x148], ecx
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x128], esi
mov dword [ebp - 0x1a0], esi
mov eax, dword [0x1161d94]
mov edx, dword [eax + 0xc]
mov ecx, 0x1161d94
mov byte [ebp - 4], 1
mov dword [ebp - 0x160], esi
call edx
add eax, 0x10
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x15c], esi
mov dword [ebp - 0x158], esi
mov dword [ebp - 0x154], esi
push esi
push 0x1050e38
lea eax, [ebp - 0x128]
push eax
push 0x1050dc0
lea ecx, [ebp - 0x11c]
push 2
push ecx
mov byte [ebp - 4], 3
call fcn.01075110
mov edx, dword [ebp + 8]
push 0x1050d50
push edx
lea eax, [ebp - 0x13c]
push 0x1050d44
push eax
mov byte [ebp - 4], 4
call fcn.0109dc70
mov edi, dword [ebp - 0x13c]
add esp, 0x28
lea ecx, [ebp - 0x138]
push ecx
push 0x20019
push esi
push edi
push VariantInit
mov dword [ebp - 0x138], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
jne 0x10fe890
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x140], 1
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
call eax
add eax, 0x10
mov dword [ebp - 0x12c], eax
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
mov byte [ebp - 4], 5
mov dword [ebp - 0x164], 0x2000
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x144], esi
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
mov byte [ebp - 4], 6
call eax
add eax, 0x10
mov dword [ebp - 0x120], eax
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
mov byte [ebp - 4], 7
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x124], ebx
fld dword [0x1003888]
fstp dword [ebp - 0x188]
xor eax, eax
fld dword [0x1003884]
lea ecx, [ebp - 0x194]
fstp dword [ebp - 0x184]
mov dword [ebp - 0x194], eax
fld dword [0x1003880]
mov dword [ebp - 0x190], eax
fstp dword [ebp - 0x180]
mov dword [ebp - 0x18c], 0x11
mov dword [ebp - 0x17c], 0xffffffff
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], 0xa
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], eax
call fcn.01095ff0
mov edx, dword [ebp - 0x164]
mov ecx, dword [esi - 8]
mov eax, 1
sub eax, dword [esi - 4]
sub ecx, edx
or eax, ecx
mov byte [ebp - 4], 9
mov edi, edx
jge 0x10fe67d
push edx
lea ecx, [ebp - 0x144]
call fcn.010745e0
mov esi, dword [ebp - 0x144]
test edi, edi
jl 0x10fef5f
cmp edi, dword [esi - 8]
jg 0x10fef5f
mov eax, dword [ebp - 0x138]
lea ecx, [ebp - 0x1a8]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x164]
push edx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], 0
mov edi, dword [ebp - 0x160]
push esi
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
add edi, 1
mov ecx, esi
mov dword [ebp - 0x160], edi
lea edi, [ecx + 2]
mov edi, edi
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x10fe6d0
sub ecx, edi
sar ecx, 1
js 0x10fef5f
cmp ecx, dword [esi - 8]
jg 0x10fef5f
cmp eax, 0x103
mov dword [esi - 0xc], ecx
mov word [esi + ecx*2], dx
je 0x10fed98
test eax, eax
je 0x10fe70f
cmp eax, 0xea
jne 0x10fee38
mov ecx, dword [ebp - 0x13c]
push esi
push ecx
lea edx, [ebp - 0x120]
push 0x1050d44
push edx
call fcn.0109dc70
add esp, 0x10
lea eax, [ebp - 0x124]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x130], esp
push 0x1007b68
call fcn.0107f6b0
mov ebx, dword [ebp - 0x120]
push ecx
add ebx, 0xfffffff0
mov dword [ebp - 0x14c], esp
mov edi, esp
push ebx
mov byte [ebp - 4], 0xa
call fcn.01081e90
add esp, 4
add eax, 0x10
mov dword [edi], eax
push VariantInit
mov byte [ebp - 4], 9
call fcn.010fcbc0
test eax, eax
jl 0x10febd3
mov ecx, dword [ebp - 0x124]
cmp dword [ecx - 0xc], 0
je 0x10febd3
call fcn.01127f00
test al, al
je 0x10fe7b3
mov edx, dword [ebp - 0x120]
push edx
push 0x1050cf8
push 0x1050c80
push 3
call fcn.01128b70
add esp, 0x10
mov edi, dword [ebp - 0x124]
push ecx
add edi, 0xfffffff0
mov dword [ebp - 0x14c], esp
mov dword [ebp - 0x130], esp
push edi
call fcn.01081e90
mov ecx, dword [ebp - 0x130]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
lea ecx, [ebp - 0x194]
call fcn.010fca00
test eax, eax
mov dword [ebp - 0x130], eax
jge 0x10fe90d
call fcn.01127f00
test al, al
je 0x10fe822
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x130]
push edx
push esi
push eax
push 0x1050bf8
push 0x1050b80
push 3
call fcn.01128b70
add esp, 0x18
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
mov byte [ebp - 4], 7
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fe84a
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov byte [ebp - 4], 6
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10fe867
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec41
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x10fec41
jle 0x10fe89c
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x128], eax
call fcn.01127f00
test al, al
je 0x10fe8c6
mov eax, dword [ebp - 0x128]
push eax
push edi
push 0x1050b28
push 0x1050ab0
push esi
call fcn.01128b70
add esp, 0x14
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 3
call fcn.01075230
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 2
call fcn.010fc010
lea eax, [edi - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10ff13a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x10ff13a
mov eax, dword [0x1161c88]
push 0
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x14c], esp
mov dword [ebp - 0x130], esp
push eax
call fcn.01081e90
mov ecx, dword [ebp - 0x130]
add eax, 0x10
add esp, 4
lea edx, [ebp - 0x19c]
mov dword [ecx], eax
push edx
lea ecx, [ebp - 0x194]
call fcn.010fcdd0
mov eax, dword [eax]
push eax
push esi
call fcn.01128fcd
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x19c]
setne byte [ebp - 0x131]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fe981
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0x131], 0
je 0x10fe9c6
lea ecx, [ebp - 0x144]
push ecx
lea ecx, [ebp - 0x15c]
call fcn.010fc980
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
mov byte [ebp - 4], 7
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x10fec04
mov ecx, dword [edi]
push edi
jmp 0x10febfd
mov ecx, dword [ebp - 0x148]
mov edx, dword [ecx + 0x64]
push edx
lea ecx, [ebp - 0x194]
call fcn.010fcff0
test al, al
je 0x10fea63
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x15c]
call fcn.010fc980
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
mov byte [ebp - 4], 7
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fea1d
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov byte [ebp - 4], 6
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10fea3a
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec41
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x10fec41
lea ecx, [ebp - 0x194]
push ecx
mov ecx, dword [ebp - 0x148]
lea edx, [ebp - 0x144]
push edx
call fcn.010fe090
test eax, eax
mov dword [ebp - 0x130], eax
jge 0x10feb1c
call fcn.01127f00
test al, al
je 0x10feaae
mov eax, dword [ebp - 0x130]
push eax
push 0x1050a68
push 0x10509f0
push 3
call fcn.01128b70
add esp, 0x10
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
mov byte [ebp - 4], 7
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fead6
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov byte [ebp - 4], 6
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10feaf3
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec41
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x10fec41
call fcn.01127f00
test al, al
je 0x10febb0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x14c], esp
push 0x1161c84
call fcn.010827d0
lea ecx, [ebp - 0x150]
push ecx
lea ecx, [ebp - 0x194]
call fcn.010fcdd0
mov edx, dword [eax]
push edx
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x14c], esp
push 0x1161c8c
mov byte [ebp - 4], 0xb
call fcn.010827d0
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0x194]
call fcn.010fcdd0
mov ecx, dword [eax]
push ecx
push esi
push 0x1050968
push 0x10508f0
push 3
mov byte [ebp - 4], 0xc
call fcn.01128b70
add esp, 0x18
lea ecx, [ebp - 0x198]
call fcn.0111cdb0
lea ecx, [ebp - 0x150]
call fcn.0111cdb0
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
mov byte [ebp - 4], 7
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x10fec04
mov ecx, dword [edi]
push edi
jmp 0x10febfd
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
mov eax, dword [ebp - 0x124]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec04
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec21
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x10fec41
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x140]
add eax, 1
cmp eax, 0x1f4
mov dword [ebp - 0x140], eax
jb 0x10fe561
xor esi, esi
cmp dword [ebp - 0x158], esi
mov dword [ebp - 0x148], esi
jle 0x10ff0e0
mov edx, dword [0x1161d94]
mov eax, dword [edx + 0xc]
mov ecx, 0x1161d94
call eax
add eax, 0x10
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x150], 0
test esi, esi
mov byte [ebp - 4], 0xe
jl 0x10ff186
cmp esi, dword [ebp - 0x158]
jge 0x10ff186
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ecx + esi*4]
mov eax, dword [ebp + 8]
push edx
push 0x1050d50
push eax
lea ecx, [ebp - 0x140]
push 0x10508dc
push ecx
call fcn.0109dc70
mov edi, dword [ebp - 0x140]
add esp, 0x14
lea edx, [ebp - 0x124]
push edx
push 0x20006
push 0
push edi
push VariantInit
mov dword [ebp - 0x124], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
jne 0x10fef69
mov ebx, dword [ebp - 0x124]
push 0x1007b68
push ebx
mov dword [ebp - 0x150], ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov esi, eax
test esi, esi
je 0x10fefa1
cmp esi, 2
je 0x10fefa1
call fcn.01127f00
test al, al
je 0x10fed8a
test esi, esi
jle 0x10fed6f
and esi, 0xffff
or esi, 0x80070000
push esi
push edi
push 0x1007b68
push 0x1050880
push 0x1050808
push 0
call fcn.01128b70
add esp, 0x18
test ebx, ebx
je 0x10ff0a5
push ebx
jmp 0x10ff09f
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
add ebx, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fedc3
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [ebp - 0x120]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fede9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fee09
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fec81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x10fec81
test eax, eax
jle 0x10fee46
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x128], eax
call fcn.01127f00
test al, al
je 0x10fee70
mov ecx, dword [ebp - 0x128]
push ecx
push 0x10507c0
push 0x1050748
push 0
call fcn.01128b70
add esp, 0x10
lea ecx, [ebp - 0x194]
call fcn.0109f9b0
add ebx, 0xfffffff0
mov byte [ebp - 4], 7
lea edx, [ebx + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x10fee9b
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov eax, dword [ebp - 0x120]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10feec1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10feee1
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fef07
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 3
call fcn.01075230
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 2
call fcn.010fc010
mov eax, dword [ebp - 0x13c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10fef4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x138]
test eax, eax
je 0x10ff13a
push eax
jmp 0x10ff134
push 0x80070057
call fcn.01071710
call fcn.01127f00
test al, al
je 0x10ff0a5
test esi, esi
jle 0x10fef86
and esi, 0xffff
or esi, 0x80070000
push esi
push edi
push 0x1050b28
push 0x10506d0
push 0
call fcn.01128b70
add esp, 0x14
jmp 0x10ff0a5
call fcn.01127f00
test al, al
je 0x10fefc4
push edi
push 0x1007b68
push 0x1050690
push 0x1050618
push 3
call fcn.01128b70
add esp, 0x14
xor ebx, ebx
jmp 0x10fefd0
mov ecx, dword [ebx + 0x1017b84]
push ecx
lea ecx, [ebp - 0x120]
call fcn.0107f6b0
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x124]
push edx
push eax
mov byte [ebp - 4], 0xf
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov esi, eax
test esi, esi
je 0x10ff03d
cmp esi, 2
je 0x10ff03d
call fcn.01127f00
test al, al
je 0x10ff062
test esi, esi
jle 0x10ff01e
and esi, 0xffff
or esi, 0x80070000
mov ecx, dword [ebp - 0x120]
push esi
push edi
push ecx
push 0x1050880
push 0x10505a0
push 0
call fcn.01128b70
add esp, 0x18
jmp 0x10ff062
call fcn.01127f00
test al, al
je 0x10ff062
mov ecx, dword [ebp - 0x120]
push edi
push ecx
push 0x1050690
push 0x1050528
push 3
call fcn.01128b70
add esp, 0x14
mov eax, dword [ebp - 0x120]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [ebp - 4], 0xe
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10ff088
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 4
cmp ebx, 0x10
jb 0x10fefd0
mov eax, dword [ebp - 0x124]
test eax, eax
je 0x10ff0a5
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [edi - 0x10]
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10ff0c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x148]
add esi, 1
cmp esi, dword [ebp - 0x158]
mov dword [ebp - 0x148], esi
jl 0x10fec95
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 3
call fcn.01075230
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 2
call fcn.010fc010
mov eax, dword [ebp - 0x13c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10ff124
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x138], 0
je 0x10ff13a
mov ecx, dword [ebp - 0x138]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x128]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10ff166
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.010840d6
mov esp, ebp
pop ebp
ret 4
push 1
push 0xc000008c
call fcn.010716f0
int3