Function at 0x10190e9
Capabilities:
Create directory
Query or enumerate registry value
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x430
mov eax, dword [0x102a0ec]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
xor esi, esi
cmp eax, esi
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x418], esi
mov dword [ebp - 0x424], 1
jne 0x1019123
xor eax, eax
jmp 0x101949b
push ebx
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push esi
lea eax, [ebp - 0x418]
push eax
push esi
push 3
push esi
push esi
push esi
push 0x1001c94
mov ebx, 0x80000002
push ebx
call edi
test eax, eax
je 0x1019171
push esi
lea eax, [ebp - 0x418]
push eax
push esi
push 1
push esi
push esi
push esi
push 0x1001c94
push ebx
mov dword [ebp - 0x424], esi
call edi
test eax, eax
je 0x1019171
xor eax, eax
jmp 0x1019499
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x420]
push eax
push esi
push 0x100681c
push dword [ebp - 0x418]
xor edi, edi
inc edi
mov dword [ebp - 0x428], 0x208
mov dword [ebp - 0x420], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [ebp - 0x420], edi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, dword [sym.imp.msvcrt.dll_wcslen]
mov dword [ebp - 0x41c], eax
jne 0x10191cd
cmp eax, esi
je 0x10192dd
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x420]
push eax
push esi
push 0x1006804
push dword [ebp - 0x418]
mov dword [ebp - 0x428], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [ebp - 0x420], 1
mov dword [ebp - 0x41c], eax
jne 0x1019211
cmp eax, esi
je 0x101927d
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.01028264
test eax, eax
jne 0x1019271
lea eax, [ebp - 0x20c]
push eax
call fcn.01016cfc
push 0x104
lea eax, [ebp - 0x414]
push eax
push 0x26fd
push dword [0x102aec0]
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x1019271
lea eax, [ebp - 0x414]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.0100d4ff
mov dword [ebp - 0x41c], esi
cmp dword [ebp - 0x41c], esi
jne 0x1019482
cmp dword [ebp - 0x424], esi
je 0x10192d1
lea eax, [ebp - 0x20c]
push eax
call edi
pop ecx
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x20c]
push eax
push 1
push esi
push 0x100681c
push dword [ebp - 0x418]
call ebx
lea eax, [ebp - 0x20c]
push eax
call edi
pop ecx
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x20c]
push eax
push 1
push esi
push 0x10067d0
push dword [ebp - 0x418]
call ebx
cmp dword [ebp - 0x41c], esi
jne 0x1019482
lea eax, [ebp - 0x20c]
push 0x1006280
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
test eax, eax
pop ecx
pop ecx
je 0x10193c9
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.01028264
test eax, eax
jne 0x10193c9
lea eax, [ebp - 0x20c]
push eax
call edi
pop ecx
mov ecx, 0x103
sub ecx, eax
lea eax, [ebp - 0x20c]
push eax
mov dword [ebp - 0x42c], ecx
call fcn.01016cfc
push dword [ebp - 0x42c]
lea eax, [ebp - 0x40c]
push eax
push 0x26fd
push dword [0x102aec0]
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x10193c9
lea eax, [ebp - 0x40c]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.0100d4ff
cmp dword [ebp - 0x424], esi
mov dword [ebp - 0x41c], esi
je 0x10193c9
lea eax, [ebp - 0x20c]
push eax
call edi
pop ecx
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x20c]
push eax
push 1
push esi
push 0x100681c
push dword [ebp - 0x418]
call ebx
lea eax, [ebp - 0x20c]
push eax
call edi
pop ecx
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x20c]
push eax
push 1
push esi
push 0x10067d0
push dword [ebp - 0x418]
call ebx
lea eax, [ebp - 0x20c]
push eax
call fcn.01018429
test eax, eax
jne 0x1019427
push esi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1019427
lea eax, [ebp - 0x20c]
push eax
push 0x10067c4
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0100d4d1
add esp, 0x10
push esi
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp dword [ebp - 0x424], esi
je 0x1019455
lea eax, [ebp - 0x20c]
push eax
call edi
pop ecx
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x20c]
push eax
push 1
push esi
push 0x1006804
push dword [ebp - 0x418]
call ebx
cmp dword [ebp + 0xc], esi
jne 0x101946d
push 0x104
lea eax, [ebp - 0x20c]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x430]
call fcn.0100d4af
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
cmp dword [ebp - 0x41c], esi
sete al
pop edi
pop ebx
mov ecx, dword [ebp - 4]
pop esi
call fcn.0101672d
leave
ret 0xc