Function at 0x416590
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62ac10
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x6b6224]
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 esi, ecx
xor eax, eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x94], eax
call fcn.004d0a25
mov ecx, eax
test ecx, ecx
jne 0x4165e3
push 0x80004005
call fcn.00402290
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0x9c]
mov dword [ebp - 4], 0
push 0x6408fc
push eax
call fcn.00404ab0
push dword [esi + 0xdc]
mov byte [ebp - 4], 1
push dword [eax]
lea eax, [ebp - 0xc0]
push eax
call fcn.00402350
mov edx, dword [ebp - 0x9c]
or edi, 0xffffffff
add esp, 0x14
mov byte [ebp - 4], 0
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416648
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
mov ebx, dword [ebp - 0xc0]
lea ecx, [ebp - 0xbc]
push 0x2001f
push ebx
push reloc.WS2_32.dll_bind
mov byte [ebp - 4], 2
call fcn.004164e0
test eax, eax
je 0x4166be
push 0
push 0
push 0x2001f
push 0
push 0
push ebx
push reloc.WS2_32.dll_bind
lea ecx, [ebp - 0xbc]
call fcn.00414ae0
test eax, eax
je 0x4166be
mov esi, dword [ebp - 0xbc]
mov byte [ebp - 0x89], 0
jmp 0x4171fb
lea eax, [ebp - 0xd0]
mov ecx, esi
push eax
call fcn.00414f10
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xbc]
mov edi, dword [eax]
cmp edi, eax
je 0x4171c7
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x9c], eax
test ecx, ecx
je 0x4166fc
lock inc dword [ecx + 4]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xec], eax
lea ecx, [ebp - 0xac]
push ecx
mov ecx, eax
call fcn.00415080
lea eax, [ebp - 0xd4]
mov byte [ebp - 4], 5
push 0x64086c
push eax
call fcn.00404ab0
add esp, 8
mov edx, dword [eax]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
mov byte [ebp - 4], 6
jne 0x41674f
xor ecx, ecx
jmp 0x41675d
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416754
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00404090
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 7
call fcn.00415130
cmp dword [ebp - 0x14], 0x10
lea esi, [ebp - 0x28]
mov ecx, eax
mov eax, dword [ebp - 0x28]
cmovae esi, eax
mov dword [ebp - 0x98], eax
cmp dword [ecx + 0x14], 0x10
lea eax, [ecx + 0x10]
jb 0x41679a
mov ecx, dword [ecx]
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
cmp eax, edx
mov dword [ebp - 0x94], eax
cmovb edx, eax
test edx, edx
je 0x416809
sub edx, 4
jb 0x4167c4
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4167c9
add ecx, 4
add esi, 4
sub edx, 4
jae 0x4167b3
cmp edx, 0xfffffffc
je 0x4167fd
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x4167f6
cmp edx, 0xfffffffd
je 0x4167fd
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x4167f6
cmp edx, 0xfffffffe
je 0x4167fd
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4167f6
cmp edx, 0xffffffff
je 0x4167fd
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x4167fd
sbb esi, esi
or esi, 1
jmp 0x4167ff
xor esi, esi
test esi, esi
jne 0x416819
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
jbe 0x416815
or esi, 0xffffffff
jmp 0x416819
sbb esi, esi
neg esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x416864
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x1000
jb 0x416856
test cl, 0x1f
jne 0x417244
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x417244
sub ecx, eax
cmp ecx, 4
jb 0x417244
cmp ecx, 0x23
ja 0x417244
mov ecx, eax
push ecx
call fcn.004cf670
mov ecx, dword [ebp - 0x28]
add esp, 4
jmp 0x41686a
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
mov byte [ebp - 4], 6
cmp eax, 0x10
jb 0x4168c4
inc eax
cmp eax, 0x1000
jb 0x4168bb
test byte [ebp - 0x28], 0x1f
jne 0x417244
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x417244
sub ecx, eax
cmp ecx, 4
jb 0x417244
cmp ecx, 0x23
ja 0x417244
mov ecx, eax
push ecx
call fcn.004cf670
add esp, 4
mov edx, dword [ebp - 0xd4]
or eax, 0xffffffff
mov dword [ebp - 0x14], 0xf
add edx, 0xfffffff0
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 5
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4168f8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
jne 0x416a9a
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0xf4]
push eax
call fcn.00415170
push esi
push 0x6b6fb0
push 0x6b6bf8
push esi
push dword [eax]
mov byte [ebp - 4], 8
call fcn.00609a4e
mov esi, dword [ebp - 0xf0]
add esp, 0x14
mov dword [ebp - 0x98], eax
test esi, esi
je 0x41695d
or ecx, 0xffffffff
lock xadd dword [esi + 4], ecx
jne 0x41695d
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x41695d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x98]
test esi, esi
je 0x41715d
push 0
push 0
push 0x147
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push eax
push 0x150
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
test esi, esi
je 0x41699b
lock inc dword [esi + 4]
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xfc], ecx
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 9
push eax
call fcn.00415130
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0xa
call fcn.00415040
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x9c], eax
cmp dword [edx + 0x14], 0x10
jb 0x4169e1
mov edx, dword [edx]
cmp dword [eax + 0x14], 0x10
jb 0x4169ef
mov eax, dword [eax]
mov dword [ebp - 0x9c], eax
test edx, edx
je 0x416a28
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x98], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416a00
sub ecx, dword [ebp - 0x98]
lea eax, [ecx + 1]
push eax
push edx
push 1
push 0
push dword [ebp - 0x9c]
push dword [ebp - 0xbc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x416a3d
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00404190
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
cmp eax, 0x10
jb 0x416a64
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00404190
test esi, esi
je 0x41715d
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x41715d
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x41715d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x41715d
lea eax, [ebp - 0xd8]
push 0x640934
push eax
call fcn.00404ab0
add esp, 8
mov edx, dword [eax]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
mov byte [ebp - 4], 0xb
jne 0x416acf
xor ecx, ecx
jmp 0x416add
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416ad4
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00404090
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0xc
call fcn.00415130
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov esi, dword [ebp - 0x28]
cmovae ecx, esi
mov dword [ebp - 0x94], eax
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 0x98], ecx
lea ecx, [eax + 0x10]
mov dword [ebp - 0xa0], ecx
jb 0x416b2a
mov eax, dword [eax]
mov dword [ebp - 0x94], eax
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
cmovb eax, ecx
push eax
push dword [ebp - 0x98]
push dword [ebp - 0x94]
call fcn.00406db0
add esp, 0xc
mov dword [ebp - 0x94], eax
test eax, eax
jne 0x416b78
mov edx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edx]
cmp ecx, eax
jbe 0x416b6e
mov dword [ebp - 0x94], 0xffffffff
jmp 0x416b78
sbb eax, eax
neg eax
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x416bc1
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x1000
jb 0x416bb5
test cl, 0x1f
jne 0x417244
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x417244
sub ecx, eax
cmp ecx, 4
jb 0x417244
cmp ecx, 0x23
ja 0x417244
mov ecx, eax
push ecx
call fcn.004cf670
mov esi, dword [ebp - 0x28]
add esp, 4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
mov byte [ebp - 4], 0xb
cmp eax, 0x10
jb 0x416c1b
inc eax
cmp eax, 0x1000
jb 0x416c12
test byte [ebp - 0x28], 0x1f
jne 0x417244
mov eax, dword [esi - 4]
cmp eax, esi
jae 0x417244
sub esi, eax
cmp esi, 4
jb 0x417244
cmp esi, 0x23
ja 0x417244
mov esi, eax
push esi
call fcn.004cf670
add esp, 4
mov edx, dword [ebp - 0xd8]
or eax, 0xffffffff
mov dword [ebp - 0x14], 0xf
add edx, 0xfffffff0
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 5
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416c4f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x94], 0
jne 0x416d6b
call fcn.004d0a25
test eax, eax
je 0x4165d9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x104]
push eax
call fcn.00415170
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xe
push ecx
mov ecx, dword [eax]
call fcn.004d4fb3
mov esi, dword [ebp - 0x100]
mov byte [ebp - 4], 0xd
test esi, esi
je 0x416ccc
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x416ccc
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x416ccc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x70]
push eax
call fcn.00415040
mov esi, eax
cmp dword [esi + 0x14], 0x10
jb 0x416ce5
mov esi, dword [esi]
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x416d29
mov edx, eax
lea ecx, [edx + 1]
mov dword [ebp - 0xa0], ecx
nop word [eax + eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x416d00
sub edx, dword [ebp - 0xa0]
lea ecx, [edx + 1]
push ecx
push eax
push 1
push 0
push esi
push dword [ebp - 0xbc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x416d46
lea eax, [ecx + 1]
push eax
push dword [ebp - 0x70]
lea ecx, [ebp - 0x70]
call fcn.00404190
mov eax, dword [ebp - 0xa4]
lea edx, [eax - 0x10]
mov byte [ebp - 4], 5
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41715d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41715d
lea eax, [ebp - 0xe0]
push 0x640948
push eax
call fcn.00404ab0
add esp, 8
mov ecx, dword [ebp - 0x90]
push dword [eax]
or ecx, 1
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x90], ecx
mov esi, ecx
mov dword [ebp - 0x94], ecx
lea ecx, [ebp - 0x70]
call fcn.0040a860
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0xac]
mov eax, esi
or eax, 2
mov dword [ebp - 4], 0x10
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00415130
push dword [ebp - 0xa0]
or esi, 6
mov dword [ebp - 4], 0x11
push eax
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0xb0], esi
call fcn.004121c0
add esp, 8
test al, al
jne 0x416e79
lea eax, [ebp - 0xdc]
push 0x640964
push eax
call fcn.00404ab0
add esp, 8
push dword [eax]
or esi, 8
mov dword [ebp - 4], 0x12
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x94], esi
call fcn.0040a860
mov esi, eax
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xac]
or eax, 0x18
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 4], 0x13
call fcn.00415130
mov ecx, dword [ebp - 0xb0]
or ecx, 0x38
push esi
push eax
mov dword [ebp - 0x90], ecx
call fcn.004121c0
add esp, 8
mov byte [ebp - 0x89], 0
test al, al
je 0x416e80
mov byte [ebp - 0x89], 1
mov ecx, dword [ebp - 0x90]
test cl, 0x20
je 0x416ec1
mov eax, dword [ebp - 0x2c]
and ecx, 0xffffffdf
mov dword [ebp - 0x90], ecx
cmp eax, 0x10
jb 0x416eaf
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00404190
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
test cl, 0x10
je 0x416efc
mov eax, dword [ebp - 0x44]
and ecx, 0xffffffef
mov dword [ebp - 0x90], ecx
cmp eax, 0x10
jb 0x416eea
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00404190
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
mov dword [ebp - 4], 0x11
test cl, 8
je 0x416f3b
mov edx, dword [ebp - 0xdc]
and ecx, 0xfffffff7
mov dword [ebp - 0x90], ecx
add edx, 0xfffffff0
mov dword [ebp - 0x94], ecx
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416f3b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x14]
and ecx, 0xfffffffb
mov dword [ebp - 0x90], ecx
cmp eax, 0x10
jb 0x416f5f
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00404190
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x5c]
and ecx, 0xfffffffd
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov dword [ebp - 0x90], ecx
cmp eax, 0x10
jb 0x416f95
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00404190
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0xe0]
and ecx, 0xfffffffe
mov dword [ebp - 0x5c], 0xf
add edx, 0xfffffff0
mov dword [ebp - 0x60], 0
or eax, 0xffffffff
mov byte [ebp - 0x70], 0
mov dword [ebp - 4], 5
mov dword [ebp - 0x90], ecx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416fd5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x89], 0
je 0x41715d
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
push dword [ebp - 0x9c]
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x14
call fcn.00412e60
mov eax, dword [ebp - 0xc8]
mov byte [ebp - 4], 0x15
mov esi, dword [eax]
cmp esi, eax
je 0x41708f
nop dword [eax]
push 0
push 0x6b6f98
push 0x6b6bf8
push 0
push dword [esi + 8]
call fcn.00609a4e
add esp, 0x14
push 0
push 0
push 0xf0
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 1
je 0x41705c
mov esi, dword [esi]
cmp esi, dword [ebp - 0xc8]
jne 0x417020
jmp 0x41708f
mov ecx, dword [esi + 0x10]
lea eax, [ebp - 0x88]
push eax
call fcn.00415130
push eax
lea ecx, [ebp - 0x58]
call fcn.00413650
mov eax, dword [ebp - 0x74]
cmp eax, 0x10
jb 0x41708f
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00404190
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x88]
push eax
call fcn.00415040
cmp dword [ebp - 0x44], 0x10
lea edx, [ebp - 0x58]
mov esi, eax
cmovae edx, dword [ebp - 0x58]
cmp dword [esi + 0x14], 0x10
jb 0x4170b6
mov esi, dword [esi]
test edx, edx
je 0x4170e8
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0xb0], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4170c5
sub ecx, dword [ebp - 0xb0]
lea eax, [ecx + 1]
push eax
push edx
push 1
push 0
push esi
push dword [ebp - 0xbc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x74]
cmp eax, 0x10
jb 0x417103
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00404190
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x74], 0xf
mov dword [ebp - 0x78], 0
mov byte [ebp - 0x88], 0
call fcn.004174b0
push 1
push dword [ebp - 0xc8]
lea ecx, [ebp - 0xc8]
call fcn.004175b0
mov eax, dword [ebp - 0x44]
cmp eax, 0x10
jb 0x41714b
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00404190
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
mov esi, dword [ebp - 0xa8]
test esi, esi
je 0x417188
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x417188
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x417188
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0xe4]
test esi, esi
je 0x4171b3
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x4171b3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x4171b3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, dword [edi]
cmp edi, dword [ebp - 0xd0]
jne 0x4166e2
mov esi, dword [ebp - 0xbc]
test esi, esi
je 0x4171d4
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
lea ecx, [ebp - 0xd0]
mov byte [ebp - 0x89], 1
call fcn.00417540
push 0x10
push 1
push dword [ebp - 0xd0]
call fcn.00417300
add esp, 0xc
or edi, 0xffffffff
test esi, esi
je 0x417206
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], 0xffffffff
add ebx, 0xfffffff0
lock xadd dword [ebx + 0xc], edi
dec edi
test edi, edi
jg 0x417222
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x89]
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.006052fe
mov esp, ebp
pop ebp
ret
call fcn.0060c211
int3