Function at 0x49cd60
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d325a
mov eax, dword fs:[0]
push eax
mov eax, 0x1964
call fcn.0055b970
mov eax, dword [0x6385e0]
xor eax, ebp
mov dword [ebp - 0x34], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1924], ecx
mov dword [ebp - 0x24], str.RunServicesOnce
mov dword [ebp - 0x20], str.RunServices
mov dword [ebp - 0x1c], str.RunOnceEx
mov dword [ebp - 0x18], str.RunOnce
mov dword [ebp - 0x14], 0x608a24
mov dword [ebp - 0x10], str.PoliciesExplorerRun
mov dword [ebp - 0x28], 0
jmp 0x49cdd1
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 6
jae 0x49d72b
lea ecx, [ebp - 0x2c]
push ecx
push 0x20019
push 0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + edx*4 - 0x24]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x49d726
mov dword [ebp - 0x83c], 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x83c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov dword [ebp - 0x838], 0
mov ecx, dword [ebp - 0x838]
cmp ecx, dword [ebp - 0x83c]
jae 0x49d71c
mov dword [ebp - 0x1044], 0x400
mov dword [ebp - 0x1040], 0x800
mov edx, dword [ebp - 0x838]
mov dword [ebp - 0x1928], edx
lea eax, [ebp - 0x1040]
push eax
lea ecx, [ebp - 0x834]
push ecx
push 0
push 0
lea edx, [ebp - 0x1044]
push edx
lea eax, [ebp - 0x103c]
push eax
mov ecx, dword [ebp - 0x1928]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x838]
add eax, 1
mov dword [ebp - 0x838], eax
cmp dword [ebp - 0x30], 0x103
jne 0x49cec6
jmp 0x49d71c
cmp dword [ebp - 0x30], 0
jne 0x49d717
lea ecx, [ebp - 0x1068]
call fcn.00432460
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x834]
push ecx
lea ecx, [ebp - 0x1074]
call fcn.004b3550
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1058]
call fcn.004324c0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x1058]
push edx
lea eax, [ebp - 0x1074]
push eax
call fcn.0042e0b0
add esp, 8
lea ecx, [ebp - 0x1054]
call fcn.004c3bf0
cmp eax, 2
jge 0x49cf44
lea ecx, [ebp - 0x1074]
push ecx
mov ecx, dword [ebp - 0x1924]
call fcn.0049d750
jmp 0x49d508
push 0
push str.rundll
lea ecx, [ebp - 0x1058]
call fcn.00404b70
mov ecx, eax
call fcn.00435950
mov ecx, eax
call fcn.004b5100
xor edx, edx
test eax, eax
setge dl
mov byte [ebp - 0x1075], dl
movzx eax, byte [ebp - 0x1075]
test eax, eax
je 0x49d14b
lea ecx, [ebp - 0x1058]
call fcn.00404b70
mov ecx, eax
call fcn.004553f0
mov ecx, eax
call fcn.00435950
push eax
lea ecx, [ebp - 0x1074]
call fcn.004b3890
push 0x5feb54
lea ecx, [ebp - 0x1074]
call fcn.004b6880
movzx ecx, al
test ecx, ecx
je 0x49d031
push 1
push 0x22
lea ecx, [ebp - 0x1074]
call fcn.004b4ed0
mov dword [ebp - 0x107c], eax
cmp dword [ebp - 0x107c], 0
jle 0x49d02f
mov edx, dword [ebp - 0x107c]
sub edx, 1
push edx
push 1
lea eax, [ebp - 0x18d8]
push eax
lea ecx, [ebp - 0x1074]
call fcn.004b6620
mov dword [ebp - 0x192c], eax
mov ecx, dword [ebp - 0x192c]
mov dword [ebp - 0x1930], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1930]
push edx
lea ecx, [ebp - 0x1074]
call fcn.004b3890
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x18d8]
call fcn.004b3860
jmp 0x49d0a2
push 0x6077d0
lea ecx, [ebp - 0x1074]
call fcn.004b4fc0
mov dword [ebp - 0x1080], eax
cmp dword [ebp - 0x1080], 0
jle 0x49d0a2
mov eax, dword [ebp - 0x1080]
push eax
push 0
lea ecx, [ebp - 0x18e4]
push ecx
lea ecx, [ebp - 0x1074]
call fcn.004b6620
mov dword [ebp - 0x1934], eax
mov edx, dword [ebp - 0x1934]
mov dword [ebp - 0x1938], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x1938]
push eax
lea ecx, [ebp - 0x1074]
call fcn.004b3890
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x18e4]
call fcn.004b3860
lea ecx, [ebp - 0x1074]
push ecx
call fcn.004134a0
add esp, 4
movzx edx, al
test edx, edx
jne 0x49d146
lea eax, [ebp - 0x1888]
push eax
lea ecx, [ebp - 0x1884]
push ecx
push 0x400
push 0
lea ecx, [ebp - 0x1074]
call fcn.004553f0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne 0x49d134
push 0x400
lea edx, [ebp - 0x1884]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x5fc5a0
push 0x400
lea eax, [ebp - 0x1884]
push eax
call fcn.0054eb7c
add esp, 0xc
lea ecx, [ebp - 0x1074]
call fcn.004553f0
push eax
push 0x400
lea ecx, [ebp - 0x1884]
push ecx
call fcn.0054eb7c
add esp, 0xc
lea edx, [ebp - 0x1884]
push edx
lea ecx, [ebp - 0x1074]
call fcn.004b38f0
jmp 0x49d508
push 0
push 0x608a68
lea ecx, [ebp - 0x1058]
call fcn.00404b70
mov ecx, eax
call fcn.00435950
mov ecx, eax
call fcn.004b4b20
movzx eax, al
test eax, eax
je 0x49d422
mov byte [ebp - 0x188a], 0
mov byte [ebp - 0x1889], 0
lea ecx, [ebp - 0x1898]
call fcn.004b34a0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1058]
call fcn.00432770
push eax
lea ecx, [ebp - 0x18a4]
call fcn.00432930
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x18a4]
call fcn.004b9730
mov dword [ebp - 0x193c], eax
mov ecx, dword [ebp - 0x193c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x193c]
mov eax, dword [edx]
call eax
movzx ecx, al
test ecx, ecx
je 0x49d3ff
movzx edx, byte [ebp - 0x188a]
test edx, edx
je 0x49d29a
mov byte [ebp - 0x188a], 0
lea ecx, [ebp - 0x18a4]
call fcn.004b9730
mov dword [ebp - 0x1940], eax
mov eax, dword [ebp - 0x1940]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1940]
mov eax, dword [edx + 8]
call eax
push eax
lea ecx, [ebp - 0x1898]
call fcn.004b3890
push 1
push 0x22
lea ecx, [ebp - 0x1898]
call fcn.004b4ed0
mov dword [ebp - 0x18a8], eax
cmp dword [ebp - 0x18a8], 0
jle 0x49d295
mov ecx, dword [ebp - 0x18a8]
sub ecx, 1
push ecx
push 1
lea edx, [ebp - 0x18f0]
push edx
lea ecx, [ebp - 0x1898]
call fcn.004b6620
mov dword [ebp - 0x1944], eax
mov eax, dword [ebp - 0x1944]
mov dword [ebp - 0x1948], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1948]
push ecx
lea ecx, [ebp - 0x1898]
call fcn.004b3890
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x18f0]
call fcn.004b3860
jmp 0x49d3fa
movzx edx, byte [ebp - 0x1889]
test edx, edx
je 0x49d378
lea ecx, [ebp - 0x1898]
call fcn.00404b70
test eax, eax
jle 0x49d32c
lea ecx, [ebp - 0x18a4]
call fcn.004b9730
mov dword [ebp - 0x194c], eax
mov eax, dword [ebp - 0x194c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x194c]
mov eax, dword [edx + 8]
call eax
push eax
lea ecx, [ebp - 0x1898]
push ecx
lea edx, [ebp - 0x18fc]
push edx
call fcn.00412f50
add esp, 0xc
mov dword [ebp - 0x1950], eax
mov eax, dword [ebp - 0x1950]
mov dword [ebp - 0x1954], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1954]
push ecx
lea ecx, [ebp - 0x1074]
call fcn.004b3890
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x18fc]
call fcn.004b3860
jmp 0x49d36e
lea ecx, [ebp - 0x18a4]
call fcn.004b9730
mov dword [ebp - 0x1958], eax
mov edx, dword [ebp - 0x1958]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1958]
mov edx, dword [eax + 8]
call edx
push eax
lea ecx, [ebp - 0x1074]
call fcn.004b3890
lea eax, [ebp - 0x1074]
push eax
mov ecx, dword [ebp - 0x1924]
call fcn.0049d750
jmp 0x49d3ff
lea ecx, [ebp - 0x18a4]
call fcn.004b9730
mov dword [ebp - 0x195c], eax
push 0
push 0x608a70
mov ecx, dword [ebp - 0x195c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x195c]
mov eax, dword [edx + 8]
call eax
mov ecx, eax
call fcn.004b4b20
movzx ecx, al
test ecx, ecx
je 0x49d3ba
mov byte [ebp - 0x188a], 1
jmp 0x49d3fa
lea ecx, [ebp - 0x18a4]
call fcn.004b9730
mov dword [ebp - 0x1960], eax
push 0
push str.start
mov edx, dword [ebp - 0x1960]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1960]
mov edx, dword [eax + 8]
call edx
mov ecx, eax
call fcn.004b4b20
movzx eax, al
test eax, eax
je 0x49d3fa
mov byte [ebp - 0x1889], 1
jmp 0x49d1ae
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x18a4]
call fcn.00432970
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1898]
call fcn.004b3860
jmp 0x49d508
push 0
push str.start
lea ecx, [ebp - 0x1058]
call fcn.00404b70
mov ecx, eax
call fcn.00435950
mov ecx, eax
call fcn.004b4b20
movzx ecx, al
test ecx, ecx
je 0x49d485
lea ecx, [ebp - 0x1058]
call fcn.00404b70
mov ecx, eax
call fcn.004553f0
mov ecx, eax
call fcn.00435950
push eax
lea ecx, [ebp - 0x1074]
call fcn.004b3890
lea edx, [ebp - 0x1074]
push edx
mov ecx, dword [ebp - 0x1924]
call fcn.0049d750
jmp 0x49d508
lea eax, [ebp - 0x1074]
push eax
mov ecx, dword [ebp - 0x1924]
call fcn.0049d750
push 0x608a84
lea ecx, [ebp - 0x1074]
call fcn.004b57c0
mov dword [ebp - 0x18ac], eax
cmp dword [ebp - 0x18ac], 0
jle 0x49d508
mov ecx, dword [ebp - 0x18ac]
push ecx
push 0
lea edx, [ebp - 0x1908]
push edx
lea ecx, [ebp - 0x1074]
call fcn.004b6620
mov dword [ebp - 0x1964], eax
mov eax, dword [ebp - 0x1964]
mov dword [ebp - 0x1968], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x1968]
push ecx
lea ecx, [ebp - 0x1074]
call fcn.004b3890
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1908]
call fcn.004b3860
lea ecx, [ebp - 0x1074]
call fcn.00404b70
test eax, eax
jle 0x49d6e7
push 1
lea edx, [ebp - 0x1074]
push edx
mov eax, dword [ebp - 0x1924]
mov ecx, dword [eax + 4]
call fcn.0041e0d0
mov dword [ebp - 0x18b0], eax
cmp dword [ebp - 0x18b0], 0
je 0x49d6e7
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x18bc]
call fcn.004b34d0
mov byte [ebp - 4], 0xa
push 0x5fc5a0
lea ecx, [ebp - 0x18bc]
call fcn.004b3b40
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + edx*4 - 0x24]
push eax
lea ecx, [ebp - 0x18bc]
call fcn.004b3b40
push 0x5fc5a0
lea ecx, [ebp - 0x18bc]
call fcn.004b3b40
lea ecx, [ebp - 0x103c]
push ecx
lea ecx, [ebp - 0x18bc]
call fcn.004b3b40
lea edx, [ebp - 0x18bc]
push edx
mov ecx, dword [ebp - 0x18b0]
call fcn.00412ce0
lea eax, [ebp - 0x103c]
push eax
lea ecx, [ebp - 0x1914]
call fcn.004b3550
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x18b0]
push ecx
lea edx, [ebp - 0x1914]
push edx
mov ecx, dword [ebp - 0x1924]
call fcn.0049ca60
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1914]
call fcn.004b3860
push 0
mov eax, dword [ebp - 0x1924]
add eax, 0x14
push eax
mov ecx, dword [ebp - 0x18b0]
call fcn.00435950
mov ecx, eax
call fcn.004b69b0
movzx ecx, al
test ecx, ecx
je 0x49d6d8
mov ecx, dword [ebp - 0x18b0]
call fcn.00435950
push eax
lea edx, [ebp - 0x18cc]
push edx
call fcn.004131c0
add esp, 8
mov byte [ebp - 4], 0xc
push 0x5c
lea ecx, [ebp - 0x18cc]
call fcn.004b5770
mov dword [ebp - 0x18c0], eax
cmp dword [ebp - 0x18c0], 0
jle 0x49d6c9
mov eax, dword [ebp - 0x18c0]
add eax, 1
mov dword [ebp - 0x18c0], eax
mov ecx, dword [ebp - 0x18c0]
push ecx
lea edx, [ebp - 0x1920]
push edx
lea ecx, [ebp - 0x18cc]
call fcn.004b64e0
mov dword [ebp - 0x196c], eax
mov eax, dword [ebp - 0x196c]
mov dword [ebp - 0x1970], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x1970]
push ecx
lea ecx, [ebp - 0x18cc]
call fcn.004b3890
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1920]
call fcn.004b3860
mov edx, dword [ebp - 0x18b0]
push edx
lea eax, [ebp - 0x18cc]
push eax
mov ecx, dword [ebp - 0x1924]
call fcn.0049ca60
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x18cc]
call fcn.004b3860
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x18bc]
call fcn.004b3860
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1058]
call fcn.00432520
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1074]
call fcn.004b3860
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1068]
call fcn.004324a0
jmp 0x49ce3e
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x49cdc8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x34]
xor ecx, ebp
call fcn.0054d4f5
mov esp, ebp
pop ebp
ret 8