Function at 0x10184630
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
lea ecx, [ebp - 0x158]
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
push ecx
mov ecx, ebx
mov dword [ebp - 0x124], ebx
mov dword [ebp - 0x144], edi
call dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x120], eax
xor eax, eax
cmp dword [edi + 0x74], 2
sete al
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x12c], eax
call fcn.10026170
mov dword [ebp - 0x150], eax
cmp byte [eax + 0x210], 0
jne 0x101846a0
xor eax, eax
jmp 0x10184843
push 0x1025c02a
push 0x34
call fcn.101c85b0
mov esi, eax
add esp, 8
test esi, esi
je 0x1018472e
mov eax, dword [ebp - 0x12c]
lea ecx, [esi + 0x14]
mov edx, dword [ebp - 0x120]
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
lea eax, [edx + 2]
mov dword [ebp - 0x12c], eax
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x101846e3
sub edx, dword [ebp - 0x12c]
sar edx, 1
push edx
push dword [ebp - 0x120]
call fcn.100070c0
mov eax, dword [ebp - 0x128]
mov dword [esi + 0x2c], eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
push esi
mov dword [esi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0
call sub.msvcrt.dll_time
add esp, 4
mov dword [esi + 0x30], eax
jmp 0x10184730
xor esi, esi
mov dword [ebp - 0x154], esi
test esi, esi
jne 0x10184741
xor eax, eax
jmp 0x10184843
push 0
push 0
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
call fcn.100273b0
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x150]
mov esi, dword [eax]
mov dword [ebp - 0x12c], esi
mov ecx, dword [esi + 4]
cmp byte [ecx + 0xd], 0
jne 0x1018479b
cmp dword [ecx + 0x10], edx
jae 0x10184791
mov ecx, dword [ecx + 8]
jmp 0x10184795
mov esi, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x10184787
cmp esi, dword [ebp - 0x12c]
je 0x101847a8
cmp edx, dword [esi + 0x10]
jae 0x101847ec
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x12c], ecx
lea ecx, [ebp - 0x145]
push ecx
lea ecx, [ebp - 0x12c]
push ecx
push 0x1021bbf4
mov ecx, eax
call fcn.1001d570
mov ecx, dword [ebp - 0x150]
push eax
add eax, 0x10
push eax
push esi
lea eax, [ebp - 0x12c]
push eax
call fcn.1001ee50
mov esi, dword [ebp - 0x12c]
add esi, 0x14
lea eax, [ebp - 0x160]
cmp esi, eax
je 0x10184822
mov ecx, esi
call fcn.1002a820
mov eax, dword [esi]
mov ecx, dword [ebp - 0x160]
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x15c]
mov dword [esi + 4], eax
mov dword [ebp - 0x15c], ecx
lea ecx, [ebp - 0x160]
call fcn.1002a820
push 0x20
push dword [ebp - 0x160]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0x154]
add esp, 8
mov edx, dword [ebp - 0x158]
lea esi, [ebx + 0xc4]
mov dword [esi], eax
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10184869
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0xf8]
mov dword [ebx + 0xf0], 0
cmp dword [eax + 0x14], 8
mov dword [eax + 0x10], 0
jb 0x10184888
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebx + 0x110]
cmp dword [eax + 0x14], 8
mov dword [eax + 0x10], ecx
jb 0x1018489e
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebx + 0x128]
mov dword [ebx + 0xf4], ecx
cmp dword [eax + 0x14], 8
mov dword [eax + 0x10], ecx
jb 0x101848ba
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebx + 0xd8]
mov ebx, edx
mov dword [ebp - 0x158], edx
mov eax, dword [ebx + 4]
cmp byte [eax + 0xd], cl
jne 0x101848f1
mov ecx, dword [edi]
cmp dword [eax + 0x10], ecx
jae 0x101848e1
mov eax, dword [eax + 8]
jmp 0x101848e5
mov ebx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x101848d7
mov dword [ebp - 0x158], ebx
cmp ebx, edx
je 0x101848fc
mov eax, dword [edi]
cmp eax, dword [ebx + 0x10]
jae 0x10184904
mov ebx, edx
mov dword [ebp - 0x158], ebx
mov eax, dword [edi + 0x74]
xor ecx, ecx
cmp eax, 2
mov dword [ebp - 0x140], eax
mov eax, dword [0x1025b450]
sete cl
inc ecx
mov dword [ebp - 0x120], ecx
cmp eax, 0xffffffff
je 0x10184973
cmp dword [0x1025b454], 0xffffffff
je 0x10184973
push eax
mov dword [ebp - 0x154], 0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jne 0x10184973
mov eax, dword [0x1025b458]
test eax, eax
je 0x10184973
lea ecx, [ebp - 0x154]
push ecx
call eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsSetValue]
push eax
push dword [0x1025b450]
call edi
push dword [ebp - 0x154]
push dword [0x1025b454]
call edi
mov eax, dword [ebx + 0x18]
add ebx, 0x18
sub eax, 0x10
mov dword [ebp - 0x14c], ebx
push eax
call fcn.10002a60
push 1
push 0x10202944
mov dword [ebp - 0x128], 0x10202944
lea edi, [eax + 0x10]
mov eax, 0x10202944
sub eax, edi
mov dword [ebp - 0x154], edi
sar eax, 1
mov dword [ebp - 0x11c], eax
mov eax, dword [edi - 0xc]
mov dword [ebp - 0x150], eax
call fcn.101e6fd0
mov ecx, dword [edi - 8]
mov edx, 1
sub edx, dword [edi - 4]
add esp, 0xc
mov dword [ebp - 0x12c], eax
add eax, dword [ebp - 0x150]
sub ecx, eax
or edx, ecx
jge 0x101849f1
push eax
lea ecx, [ebp - 0x154]
call fcn.10003310
mov edi, dword [ebp - 0x154]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x150]
cmp eax, ecx
ja 0x10184a0a
lea eax, [edi + eax*2]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x12c]
add eax, eax
push eax
push dword [ebp - 0x128]
push eax
lea eax, [edi + ecx*2]
push eax
call fcn.10004510
mov eax, dword [ebp - 0x12c]
add esp, 0x10
add eax, dword [ebp - 0x150]
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x144]
cmp dword [eax + 0x40], 1
jne 0x10184a60
mov eax, ebx
jmp 0x10184a63
add eax, 8
push eax
lea ecx, [ebp - 0x150]
call fcn.10002790
push ebx
push 0x10205260
lea ecx, [ebp - 0x11c]
call fcn.10002490
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.10007e90
mov edx, dword [ebp - 0x11c]
add esp, 0xc
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10184aae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
cmp word [eax], 0x7b
jne 0x10185afe
mov ebx, dword [ebp - 0x124]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x10184ace
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp 0x10184ad3
mov eax, 0x10202940
push eax
lea ecx, [ebp - 0x118]
call fcn.101221f0
mov eax, dword [ebx]
lea ecx, [ebp - 0x11c]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
mov ebx, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x124]
push dword [eax]
mov ebx, dword [ebx + 0xc]
push 2
call fcn.101a2170
push eax
mov eax, dword [ebp - 0x144]
lea ecx, [ebp - 0x118]
push dword [eax + 0x40]
mov eax, dword [ebp - 0x124]
push dword [eax + 0xec]
push ebx
push dword [ebp - 0x150]
call fcn.10126970
mov edx, dword [ebp - 0x11c]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10184b4b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x124]
mov ebx, dword [ebp - 0x158]
cmp dword [eax + 0x228], 1
jne 0x10184ba7
push dword [ebp - 0x20]
push dword [esi]
push dword [ebp - 0x120]
push 0x200
push dword [ebx + 0x18]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerCLSID_
push SysReAllocString
call fcn.10176d80
push dword [ebp - 0x20]
push dword [esi]
push dword [ebp - 0x120]
push 0x100
push dword [ebx + 0x18]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerCLSID_
push SysReAllocString
call fcn.10176d80
add esp, 0x38
push 6
xor eax, eax
mov dword [ebp - 0xc], 0
push str.CLSID_
lea ecx, [ebp - 0x1c]
mov dword [ebp - 8], 7
mov word [ebp - 0x1c], ax
call fcn.100070c0
mov edx, dword [ebx + 0x18]
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10184bd2
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x1c]
call fcn.10006d70
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
jb 0x10184bf7
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x158]
push ecx
mov ecx, esp
mov dword [ebp - 0x184], VariantCopy
push 0x10202940
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x17c], 0x10202940
mov dword [ebp - 0x178], 0x10202940
mov dword [ebp - 0x174], 2
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x11c], eax
call fcn.10002490
push ebx
lea eax, [ebp - 0x184]
mov ecx, 0x1025ac18
push eax
push dword [ebp - 0x11c]
push str.CLSID
call fcn.101ad040
mov eax, dword [ebp - 0x124]
cmp dword [eax + 0x228], 1
jne 0x10185af1
mov ebx, dword [ebp - 0x14c]
mov ecx, 0x1025ac18
push dword [ebx]
push str.CLSID
call fcn.100615f0
test eax, eax
jne 0x101853e1
push dword [ebp - 0x20]
mov edi, dword [ebp - 0x120]
push dword [esi]
push edi
push 0x200
push dword [ebx]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace_
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.10176d80
push dword [ebp - 0x20]
push dword [esi]
push edi
push 0x100
push dword [ebx]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace_
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.10176d80
push dword [ebp - 0x20]
push dword [esi]
push edi
push 0x200
push dword [ebx]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace_
push SysReAllocString
call fcn.10176d80
add esp, 0x54
push dword [ebp - 0x20]
push dword [esi]
push edi
push 0x100
push dword [ebx]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace_
push SysReAllocString
call fcn.10176d80
add esp, 0x1c
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0xffffffff
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push 0x52
add eax, 0x10
lea ecx, [ebp - 0x124]
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsNewStartPanel_
mov dword [ebp - 0x124], eax
call fcn.10003740
lea ecx, [ebp - 0x13c]
call fcn.10008220
mov edi, dword [ebp - 0x124]
lea eax, [ebp - 0x13c]
push 0x2021f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
push eax
mov ecx, eax
call fcn.1000a260
test eax, eax
jne 0x10184e55
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10184e2b
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10184e55
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
lea ecx, [ebp - 0x13c]
call fcn.10008220
push 0x2011f
push edi
lea eax, [ebp - 0x13c]
push reloc.OLEAUT32.dll_SysReAllocString
push eax
mov ecx, eax
call fcn.1000a260
test eax, eax
jne 0x10184f28
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10184efe
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10184f28
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
push 0x2021f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x10184fed
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10184fc3
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10184fed
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
push 0x2011f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x101850ac
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10185082
mov edi, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push edi
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
cmp dword [ebp - 0x140], 2
je 0x101850ac
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
push 0x55
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsClassicStartMenu_
lea ecx, [ebp - 0x124]
call fcn.10003740
mov edi, dword [ebp - 0x124]
lea ecx, [ebp - 0x13c]
push 0x2021f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.10058810
test eax, eax
jne 0x10185189
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x1018515f
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185189
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
push 0x2011f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x1018524e
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10185224
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x1018524e
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
push 0x2021f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x10185313
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x101852e9
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185313
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
push 0x2011f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x10185ac8
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x101853ae
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185ac8
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10060790
jmp 0x10185ac8
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0xffffffff
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push 0x52
add eax, 0x10
mov dword [ebp - 0x144], 1
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsNewStartPanel_
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x124], eax
call fcn.10003740
mov edi, dword [ebp - 0x124]
lea ecx, [ebp - 0x13c]
push 0x2021f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.10058810
test eax, eax
jne 0x10185506
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x101854d1
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185506
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x2011f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x101855d6
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x101855a1
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x101855d6
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x2021f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x101856a6
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10185671
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x101856a6
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x2011f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x10185770
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x1018573b
mov edi, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push edi
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
cmp dword [ebp - 0x140], 2
je 0x10185770
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x55
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsClassicStartMenu_
lea ecx, [ebp - 0x124]
call fcn.10003740
mov edi, dword [ebp - 0x124]
lea ecx, [ebp - 0x13c]
push 0x2021f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.10058810
test eax, eax
jne 0x10185858
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10185823
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185858
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x2011f
push edi
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x10185928
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x101858f3
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKLM_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185928
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x2021f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x101859f8
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x101859c3
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x101859f8
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
push 0x2011f
push edi
push SysReAllocString
lea ecx, [ebp - 0x13c]
call fcn.10058810
test eax, eax
jne 0x10185ac8
push eax
push eax
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x13c]
lea eax, [ebp - 0x11c]
push eax
push dword [ebx]
call fcn.100263b0
test eax, eax
jne 0x10185a93
mov ebx, dword [ebx]
lea eax, [ebp - 0x124]
push eax
push str.HKCU_
lea ecx, [ebp - 0x120]
call fcn.10002490
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10007e90
add esp, 0xc
push 0x10204674
push 0
push ebx
push dword [eax]
push dword [esi]
call fcn.10026170
mov ecx, eax
call fcn.1002b410
lea ecx, [ebp - 0x128]
call fcn.10007e10
lea ecx, [ebp - 0x120]
call fcn.10007e10
mov ebx, dword [ebp - 0x14c]
cmp dword [ebp - 0x140], 2
je 0x10185ac8
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x13c]
push 0
push dword [ebx]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
push 4
lea eax, [ebp - 0x144]
push eax
push 4
push dword [ebx]
lea ecx, [ebp - 0x13c]
call fcn.10058930
or eax, 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x10185ae0
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x13c]
call fcn.10008220
mov edi, dword [ebp - 0x154]
lea ecx, [ebp - 0x1c]
call fcn.10005250
jmp 0x10185ca4
push edi
call fcn.100dcd40
add esp, 4
test eax, eax
je 0x10185bc9
mov ebx, dword [ebp - 0x124]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x10185b23
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp 0x10185b28
mov eax, 0x10202940
push eax
lea ecx, [ebp - 0x118]
call fcn.101221f0
mov eax, dword [ebx]
lea ecx, [ebp - 0x11c]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
mov ebx, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x124]
push dword [eax]
mov ebx, dword [ebx + 0xc]
push 2
call fcn.101a2170
push eax
mov eax, dword [ebp - 0x144]
lea ecx, [ebp - 0x118]
push dword [eax + 0x40]
mov eax, dword [ebp - 0x124]
push dword [eax + 0xec]
push ebx
push dword [ebp - 0x150]
call fcn.10126970
mov edx, dword [ebp - 0x11c]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10185ba0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x158]
mov ecx, 0x1025b450
push 0
mov ebx, dword [eax + 0x18]
call fcn.10009be0
push eax
push 1
push ebx
lea ecx, [ebp - 0x118]
call fcn.10125f70
jmp 0x10185ca4
push dword [ebx]
call fcn.1000aa00
add esp, 4
test eax, eax
jne 0x10185bed
push dword [ebp - 0x12c]
call fcn.1000aa00
add esp, 4
test eax, eax
je 0x10185caf
mov ebx, dword [ebp - 0x124]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x10185c01
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp 0x10185c06
mov eax, 0x10202940
push eax
lea ecx, [ebp - 0x118]
call fcn.101221f0
mov eax, dword [ebx]
lea ecx, [ebp - 0x11c]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
mov ebx, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x124]
push dword [eax]
mov ebx, dword [ebx + 0xc]
push 2
call fcn.101a2170
push eax
mov eax, dword [ebp - 0x144]
lea ecx, [ebp - 0x118]
push dword [eax + 0x40]
mov eax, dword [ebp - 0x124]
push dword [eax + 0xec]
push ebx
push dword [ebp - 0x150]
call fcn.10126970
mov edx, dword [ebp - 0x11c]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10185c7e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x158]
mov ecx, 0x1025b450
push 0
push 0
mov ebx, dword [eax + 0x18]
call fcn.10009be0
push eax
push 1
push ebx
lea ecx, [ebp - 0x118]
call fcn.10123f40
lea ecx, [ebp - 0x118]
call fcn.10122860
push 0
mov ecx, 0x1025b450
call fcn.10008cd0
mov edx, dword [ebp - 0x12c]
or ebx, 0xffffffff
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10185cdb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x150]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10185cf8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x10185d0d
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x10185dbc
mov edi, dword [esi]
test edi, edi
je 0x10185dbc
call fcn.10026170
mov ebx, eax
lea ecx, [ebp - 0x145]
mov dword [ebp - 0x12c], ebx
call fcn.10129b80
cmp byte [ebx + 0x210], 0
je 0x10185dab
test edi, edi
je 0x10185dab
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x11c], edi
push eax
lea eax, [ebp - 0x128]
mov ecx, ebx
push eax
call fcn.1002aeb0
mov edi, dword [eax]
cmp edi, dword [ebx]
je 0x10185dab
mov ecx, dword [ebp - 0x12c]
lea ebx, [edi + 0x14]
push ebx
push dword [edi + 0x10]
call fcn.1002b7c0
mov ecx, ebx
call fcn.1002a820
mov ebx, dword [edi + 0x10]
test ebx, ebx
je 0x10185d98
lea ecx, [ebx + 0x14]
call fcn.10005250
push 0x34
push ebx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
mov ecx, dword [ebp - 0x12c]
lea eax, [ebp - 0x11c]
push edi
push eax
call fcn.101887b0
lea ecx, [ebp - 0x145]
call fcn.10129ba0
mov dword [esi], 0
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret 4