Function at 0x100af59
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x95c
push ebx
push esi
push dword [ebp + 0x10]
xor esi, esi
push dword [ebp + 0xc]
inc esi
mov dword [ebp - 4], esi
call dword [sym.imp.SETUPAPI.dll_SetupGetLineCountA]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x30], eax
ja 0x100af87
mov dword [ebp - 4], esi
jmp 0x100b246
cmp eax, ebx
mov dword [ebp - 0xc], ebx
jbe 0x100b246
push edi
mov edi, dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
mov esi, 0x104
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0xc]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.SETUPAPI.dll_SetupGetLineByIndexA]
test eax, eax
je 0x100b242
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetFieldCount]
cmp eax, 3
jae 0x100afde
push 0x10024d4
push 0x10339e0
call sub.ntdll.dll_sprintf
pop ecx
pop ecx
jmp 0x100b06c
push ebx
push esi
lea eax, [ebp - 0x13c]
push eax
push ebx
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x13c], bl
call edi
test eax, eax
je 0x100b231
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 8], ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
test eax, eax
jne 0x100b021
lea eax, [ebp - 0x13c]
push eax
push 0x10024b4
jmp 0x100b05f
push ebx
push esi
lea eax, [ebp - 0x240]
push eax
push 2
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x240], bl
call edi
push ebx
push esi
lea eax, [ebp - 0x54c]
push eax
push 3
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x54c], bl
call edi
test eax, eax
jne 0x100b07b
lea eax, [ebp - 0x13c]
push eax
push 0x1002494
push 0x10339e0
call sub.ntdll.dll_sprintf
add esp, 0xc
push 0x10339e0
call fcn.01008343
jmp 0x100b231
push ebx
push esi
lea eax, [ebp - 0x448]
push eax
push 4
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x448], bl
call edi
lea eax, [ebp - 0x24]
push eax
push 5
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x24], ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
push ebx
push esi
lea eax, [ebp - 0x650]
push eax
push 6
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x650], bl
call edi
lea eax, [ebp - 0x28]
push eax
push 7
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x28], ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
lea eax, [ebp - 0x2c]
push eax
push 8
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x2c], 1
call dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
push ebx
push esi
lea eax, [ebp - 0x344]
push eax
push 9
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x344], bl
call edi
push ebx
push esi
lea eax, [ebp - 0x858]
push eax
push 0xa
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 0x858], bl
call edi
lea eax, [ebp - 0x20]
push eax
push 0xb
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x20], ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x95c]
push eax
push dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x100b18f
push 0x1000
push 0x10229c0
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x95c]
push eax
mov byte [0x10229c0], bl
call fcn.0100777d
push esi
lea eax, [ebp - 0x754]
push eax
push 0x100248c
push 0x10229c0
call fcn.0100777d
push ebx
lea eax, [ebp - 0x754]
push eax
call fcn.0100988e
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x38], eax
push dword [ebp - 0x20]
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x344]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x650]
push dword [ebp - 0x28]
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x240]
push eax
push dword [ebp - 8]
call dword [sym.imp.USERENV.dll_Ordinal_138]
cmp eax, ebx
mov dword [ebp - 0x34], eax
jne 0x100b1ff
lea eax, [ebp - 0x13c]
push eax
push 0x100246c
push 0x10339e0
call sub.ntdll.dll_sprintf
add esp, 0xc
push 0x10339e0
call fcn.01008343
cmp dword [ebp - 0x38], ebx
jne 0x100b22b
push ebx
lea eax, [ebp - 0x754]
push eax
call fcn.0100988e
test eax, eax
je 0x100b22b
push ebx
push 0x1002468
lea eax, [ebp - 0x240]
push eax
push dword [ebp - 8]
call dword [sym.imp.USERENV.dll_Ordinal_121]
mov eax, dword [ebp - 0x34]
and dword [ebp - 4], eax
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x30]
jb 0x100af9e
jmp 0x100b245
mov dword [ebp - 4], ebx
pop edi
mov eax, dword [ebp - 4]
pop esi
pop ebx
leave
ret 0xc