Function at 0x100a109
Capabilities:
Get common file path
Print debug messages
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2ac
mov eax, dword [0x1017048]
and dword [ebp - 0x280], 0
push ebx
push esi
push edi
mov edi, 0x1017be0
mov dword [ebp - 4], eax
mov eax, edi
push 2
pop ecx
and word [eax], 0
add eax, 0x208
dec ecx
jne 0x100a130
cmp eax, 0x1018400
jle 0x100a12d
cmp byte [0x1018811], 0
je 0x100a413
xor esi, esi
lea eax, [ebp - 0x270]
inc esi
push 0x105
lea ecx, [ebp - 0x27c]
mov dword [ebp - 0x278], esi
mov dword [ebp - 0x27c], eax
call fcn.0100a033
test al, al
jne 0x100a184
cmp dword [ebp - 0x278], esi
jmp 0x100a405
push dword [ebp - 0x278]
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push dword [ebp - 0x27c]
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x100a1c6
cmp eax, dword [ebp - 0x278]
jbe 0x100a1f7
push eax
lea ecx, [ebp - 0x27c]
call fcn.0100a033
test al, al
je 0x100a1cc
push dword [ebp - 0x278]
push dword [ebp - 0x27c]
call esi
test eax, eax
jne 0x100a1a0
jmp 0x100a1fb
push 0x10036c8
lea eax, [ebp - 0x26c]
push 0x109
push eax
call fcn.0100a0db
add esp, 0xc
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x100a3fe
test eax, eax
jne 0x100a209
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1003630
jmp 0x100a261
push dword [ebp - 0x27c]
push 0x1017de8
call fcn.0100f6e7
push 0x5c
push dword [ebp - 0x27c]
call fcn.0100f67b
mov esi, eax
add esp, 0x10
test esi, esi
je 0x100a256
push esi
call fcn.0100f572
test eax, eax
pop ecx
je 0x100a256
push 0x1003618
push esi
call fcn.0100f6e7
push dword [ebp - 0x27c]
push edi
call fcn.0100f6e7
add esp, 0x10
jmp 0x100a27e
push dword [ebp - 0x27c]
push 0x1003530
lea eax, [ebp - 0x26c]
push 0x109
push eax
call fcn.0100a0db
lea eax, [ebp - 0x26c]
add esp, 0x10
push eax
call ebx
push 0x15
pop ecx
mov esi, 0x10034d8
lea edi, [ebp - 0x58]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x280]
call fcn.01008658
push eax
push 0x20019
push 0
lea eax, [ebp - 0x58]
push eax
push 0x80000002
call fcn.01008692
mov esi, eax
add esp, 0x14
test esi, esi
je 0x100a2e4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 0x10033f8
lea eax, [ebp - 0x26c]
push 0x109
push eax
call fcn.0100a0db
add esp, 0x14
lea eax, [ebp - 0x26c]
push eax
call ebx
jmp 0x100a3fe
mov dword [ebp - 0x2ac], 0x10033c8
mov dword [ebp - 0x2a8], 0x10033a0
mov dword [ebp - 0x2a4], 0x1003380
mov dword [ebp - 0x2a0], 0x1003364
mov dword [ebp - 0x29c], 0x1003338
mov dword [ebp - 0x298], 0x1003310
mov dword [ebp - 0x294], 0x10032f0
mov dword [ebp - 0x290], 0x10032d4
mov dword [ebp - 0x284], 2
lea esi, [ebp - 0x2a8]
and dword [ebp - 0x288], 0
mov eax, dword [ebp - 0x278]
add eax, eax
mov dword [ebp - 0x28c], eax
lea eax, [ebp - 0x28c]
push eax
push dword [ebp - 0x27c]
push 0
push 0
push dword [esi - 4]
push dword [ebp - 0x280]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test edi, edi
je 0x100a3ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [esi]
lea eax, [ebp - 0x26c]
push edi
push 0x10031f8
push 0x109
push eax
call fcn.0100a0db
add esp, 0x18
lea eax, [ebp - 0x26c]
push eax
call ebx
jmp 0x100a3d4
mov ecx, dword [ebp - 0x288]
mov eax, dword [ebp - 0x284]
push dword [ebp - 0x27c]
add eax, ecx
imul eax, eax, 0x208
add eax, 0x1017be0
push eax
call fcn.0100f6e7
pop ecx
pop ecx
inc dword [ebp - 0x288]
add esi, 8
cmp dword [ebp - 0x288], 2
jl 0x100a34b
add dword [ebp - 0x284], 2
cmp dword [ebp - 0x284], 6
jl 0x100a344
cmp dword [ebp - 0x278], 1
jle 0x100a413
push dword [ebp - 0x27c]
call fcn.0100f5fc
pop ecx
lea ecx, [ebp - 0x280]
call fcn.01008676
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100f0dc
leave
ret