Function at 0x100b2c8
Capabilities:
Check if file exists
Enumerate files on windows
Get common file path
Query environment variable
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc98
mov eax, dword [0x101803c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
cmp byte [0x1019889], bl
je 0x100b2f8
xor eax, eax
cmp byte [0x1019888], bl
sete al
jmp 0x100c7d7
push 0x10041a4
mov byte [0x1019889], 1
call fcn.0100d383
lea eax, [ebp - 0xc8c]
mov dword [ebp - 0xc98], eax
pop ecx
mov dword [ebp - 0xc94], 0xa
mov dword [ebp - 0xbd4], ebx
xor eax, eax
mov ecx, dword [ebp - 0xc98]
mov dword [ecx + eax*4], ebx
inc eax
cmp eax, dword [ebp - 0xc94]
jl 0x100b328
lea eax, [ebp - 0xc20]
mov dword [ebp - 0xc2c], eax
mov dword [ebp - 0xc28], 0xa
mov dword [ebp - 0xbcc], ebx
xor eax, eax
mov ecx, dword [ebp - 0xc2c]
mov dword [ecx + eax*4], ebx
inc eax
cmp eax, dword [ebp - 0xc28]
jl 0x100b358
lea eax, [ebp - 0xc54]
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0xc5c], 0xa
mov dword [ebp - 0xbc8], ebx
xor eax, eax
mov ecx, dword [ebp - 0xc60]
mov dword [ecx + eax*4], ebx
inc eax
cmp eax, dword [ebp - 0xc5c]
jl 0x100b388
push esi
push edi
push 0xa
mov dword [ebp - 0xbf4], 0x100419c
mov dword [ebp - 0xbf0], 0x1004194
mov dword [ebp - 0xbec], 0x100418c
xor esi, esi
pop edi
push ebx
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
push dword [ebp + esi*4 - 0xbf4]
mov dword [ebp - 0xc58], edi
call fcn.0100795d
add esp, 0x10
test al, al
je 0x100b43e
inc esi
cmp esi, 3
jb 0x100b3bf
push 0x103
lea eax, [ebp - 0x74b]
push ebx
push eax
mov byte [ebp - 0x74c], bl
call fcn.0100d7e0
add esp, 0xc
mov esi, 0x104
push esi
lea eax, [ebp - 0x74c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x100b488
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1004148
call fcn.0100d383
pop ecx
pop ecx
mov byte [0x1019888], 1
jmp 0x100b4c8
cmp dword [ebp - 0xc5c], edi
mov byte [0x1019888], 1
jle 0x100b459
push dword [ebp - 0xc60]
call fcn.0100d79a
pop ecx
cmp dword [ebp - 0xc28], edi
jle 0x100b46d
push dword [ebp - 0xc2c]
call fcn.0100d79a
pop ecx
cmp dword [ebp - 0xc94], edi
jle 0x100b481
push dword [ebp - 0xc98]
call fcn.0100d79a
pop ecx
xor al, al
jmp 0x100c7d5
lea eax, [ebp - 0x74c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100b491
sub eax, edx
cmp byte [ebp + eax - 0x74d], 0x5c
je 0x100b4b6
push 0x1001a24
push esi
lea eax, [ebp - 0x74c]
push eax
call fcn.010073d2
push 0x100413c
push esi
lea eax, [ebp - 0x74c]
push eax
call fcn.010073d2
lea ecx, [ebp - 0xbac]
mov dword [ebp - 0xbac], ebx
call fcn.01005bd9
push eax
push 0x20019
push ebx
push 0x10022c0
push 0x80000002
call fcn.01005c13
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
add esp, 0x14
cmp eax, ebx
jne 0x100bc65
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbb4]
push eax
lea eax, [ebp - 0x440]
push eax
mov dword [ebp - 0xba4], ebx
push ebx
jmp 0x100bbf0
lea eax, [ebp - 0x440]
push eax
push 0x1003734
lea eax, [ebp - 0x954]
push esi
push eax
call fcn.0100742b
mov eax, dword [ebp - 0xbac]
add esp, 0x10
lea ecx, [ebp - 0xbc4]
mov dword [ebp - 0xbc4], ebx
mov dword [ebp - 0xbb8], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x954]
push eax
push dword [ebp - 0xbb8]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100b58e
cmp eax, 2
je 0x100b58e
push eax
lea eax, [ebp - 0x440]
push eax
push 0x10040f0
jmp 0x100b9ca
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0xa58]
push eax
mov dword [ebp - 0xbb8], ebx
push ebx
jmp 0x100b9a0
lea eax, [ebp - 0xa58]
push eax
push 0x1002990
lea eax, [ebp - 0x130]
push esi
push eax
call fcn.0100742b
mov eax, dword [ebp - 0xbc4]
add esp, 0x10
lea ecx, [ebp - 0xba8]
mov dword [ebp - 0xba8], ebx
mov dword [ebp - 0xb9c], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x130]
push eax
push dword [ebp - 0xb9c]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100b62d
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x130]
push eax
push 0x10040a8
call fcn.0100d383
add esp, 0x10
mov byte [0x1019888], 1
jmp 0x100b977
lea eax, [ebp - 0xbd0]
push eax
lea eax, [ebp - 0xc64]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
push 0x1004094
push dword [ebp - 0xba8]
mov dword [ebp - 0xbd0], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100b977
cmp dword [ebp - 0xbb0], 4
jne 0x100b67c
cmp dword [ebp - 0xc64], 1
jne 0x100b977
push 0x103
lea eax, [ebp - 0x84f]
push ebx
push eax
mov byte [ebp - 0x850], bl
call fcn.0100d7e0
mov eax, 0x1003088
add esp, 0xc
mov dword [ebp - 0xbf4], eax
mov dword [ebp - 0xbf0], 0x1004080
mov dword [ebp - 0xbec], ebx
mov dword [ebp - 0xb9c], ebx
lea ecx, [ebp - 0xbd0]
push ecx
lea ecx, [ebp - 0x850]
push ecx
lea ecx, [ebp - 0xbb0]
push ecx
push ebx
push eax
push dword [ebp - 0xba8]
mov dword [ebp - 0xbd0], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100b6ee
cmp dword [ebp - 0xbb0], 1
je 0x100b705
inc dword [ebp - 0xb9c]
mov eax, dword [ebp - 0xb9c]
mov eax, dword [ebp + eax*4 - 0xbf4]
cmp eax, ebx
jne 0x100b6b8
cmp byte [ebp - 0x850], bl
je 0x100b74f
push 0xa
pop eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x850]
push eax
call fcn.010079df
add esp, 0x14
test al, al
je 0x100bc15
cmp byte [0x1019778], bl
jne 0x100b977
cmp byte [ebp - 0x74c], bl
je 0x100b977
lea eax, [ebp - 0xa58]
push eax
push 0x1004070
lea eax, [ebp - 0x130]
push esi
push eax
call fcn.0100742b
mov eax, dword [ebp - 0xbc4]
add esp, 0x10
lea ecx, [ebp - 0xba0]
mov dword [ebp - 0xba0], ebx
mov dword [ebp - 0xb9c], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x130]
push eax
push dword [ebp - 0xb9c]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100b7f8
cmp eax, 2
je 0x100b7e8
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x130]
push eax
push 0x10040a8
call fcn.0100d383
add esp, 0x10
mov byte [0x1019888], 1
lea ecx, [ebp - 0xba0]
call fcn.01005bf7
jmp 0x100b977
lea eax, [ebp - 0x74c]
push eax
push esi
lea eax, [ebp - 0x648]
push eax
call fcn.0100734b
lea eax, [ebp - 0x648]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100b815
sub eax, edx
cmp byte [ebp + eax - 0x649], 0x5c
je 0x100b83a
push 0x1001a24
push esi
lea eax, [ebp - 0x648]
push eax
call fcn.010073d2
lea eax, [ebp - 0x648]
push 0x5c
push eax
call fcn.0100d8c0
pop ecx
pop ecx
mov edi, eax
lea eax, [ebp - 0xbd0]
push eax
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
lea eax, [ebp - 0xbe8]
push eax
lea eax, [ebp - 0xb5c]
push eax
inc edi
mov dword [ebp - 0xb9c], ebx
push ebx
jmp 0x100b91c
inc dword [ebp - 0xb9c]
cmp byte [ebp - 0x850], bl
je 0x100b8ec
cmp dword [ebp - 0xbb0], 1
jne 0x100b8ec
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x544]
sub eax, edi
push eax
push edi
call fcn.0100734b
push 0xa
pop eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x648]
push eax
call fcn.010079df
add esp, 0x14
test al, al
je 0x100bc37
inc dword [ebp - 0xb9c]
lea eax, [ebp - 0xbd0]
push eax
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
lea eax, [ebp - 0xbe8]
push eax
lea eax, [ebp - 0xb5c]
push eax
push dword [ebp - 0xb9c]
push dword [ebp - 0xba0]
mov dword [ebp - 0xbd0], esi
mov dword [ebp - 0xbe8], esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, ebx
je 0x100b87d
cmp eax, 0x103
je 0x100b966
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x130]
push eax
push 0x1004038
call fcn.0100d383
add esp, 0x10
mov byte [0x1019888], 1
lea ecx, [ebp - 0xba0]
call fcn.01005bf7
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
lea ecx, [ebp - 0xba8]
call fcn.01005bf7
inc dword [ebp - 0xbb8]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbdc]
push eax
lea eax, [ebp - 0xa58]
push eax
push dword [ebp - 0xbb8]
push dword [ebp - 0xbc4]
mov dword [ebp - 0xbdc], esi
call edi
cmp eax, ebx
je 0x100b5ac
cmp eax, 0x103
je 0x100b9d9
push eax
lea eax, [ebp - 0x440]
push eax
push 0x1003ffc
call fcn.0100d383
mov byte [0x1019888], 1
add esp, 0xc
lea eax, [ebp - 0x440]
push eax
push 0x1003728
lea eax, [ebp - 0x954]
push esi
push eax
call fcn.0100742b
mov eax, dword [ebp - 0xbac]
add esp, 0x10
lea ecx, [ebp - 0xbbc]
mov dword [ebp - 0xbbc], ebx
mov dword [ebp - 0xbb8], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x954]
push eax
push dword [ebp - 0xbb8]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100ba4d
cmp eax, 2
je 0x100bbbc
push eax
lea eax, [ebp - 0x440]
push eax
push 0x1003fb0
jmp 0x100bbad
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x544]
push eax
mov dword [ebp - 0xbb8], ebx
push ebx
jmp 0x100bb83
mov eax, dword [ebp - 0xbbc]
lea ecx, [ebp - 0xb9c]
mov dword [ebp - 0xb9c], ebx
mov dword [ebp - 0xbe4], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x544]
push eax
push dword [ebp - 0xbe4]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100bad0
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x544]
push eax
push 0x1003f58
call fcn.0100d383
add esp, 0x10
mov byte [0x1019888], 1
jmp 0x100bb5a
lea eax, [ebp - 0xbd8]
push eax
lea eax, [ebp - 0x954]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
push 0x1003088
push dword [ebp - 0xb9c]
mov dword [ebp - 0xbd8], esi
mov byte [ebp - 0x954], bl
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100bb5a
cmp dword [ebp - 0xbb0], 1
jne 0x100bb5a
cmp byte [ebp - 0x954], bl
je 0x100bb5a
push 0xa
pop eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x954]
push eax
call fcn.010079df
add esp, 0x14
test al, al
je 0x100bc4b
lea ecx, [ebp - 0xb9c]
call fcn.01005bf7
inc dword [ebp - 0xbb8]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbc0]
push eax
lea eax, [ebp - 0x544]
push eax
push dword [ebp - 0xbb8]
push dword [ebp - 0xbbc]
mov dword [ebp - 0xbc0], esi
call edi
cmp eax, ebx
je 0x100ba6b
cmp eax, 0x103
je 0x100bbbc
push eax
lea eax, [ebp - 0x440]
push eax
push 0x1003f18
call fcn.0100d383
add esp, 0xc
mov byte [0x1019888], 1
lea ecx, [ebp - 0xbbc]
call fcn.01005bf7
lea ecx, [ebp - 0xbc4]
call fcn.01005bf7
inc dword [ebp - 0xba4]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbb4]
push eax
lea eax, [ebp - 0x440]
push eax
push dword [ebp - 0xba4]
push dword [ebp - 0xbac]
mov dword [ebp - 0xbb4], esi
call edi
cmp eax, ebx
je 0x100b51e
cmp eax, 0x103
je 0x100bc7e
push eax
push 0x1003eec
jmp 0x100bc70
mov byte [0x1019888], 1
lea ecx, [ebp - 0xba8]
call fcn.01005bf7
lea ecx, [ebp - 0xbc4]
call fcn.01005bf7
jmp 0x100c708
lea ecx, [ebp - 0xba0]
mov byte [0x1019888], 1
call fcn.01005bf7
jmp 0x100bc1c
lea ecx, [ebp - 0xb9c]
mov byte [0x1019888], 1
call fcn.01005bf7
lea ecx, [ebp - 0xbbc]
jmp 0x100bc22
cmp eax, 2
je 0x100bc7e
push eax
push 0x1003eac
call fcn.0100d383
pop ecx
mov byte [0x1019888], 1
pop ecx
lea ecx, [ebp - 0xbac]
call fcn.01005bd9
push eax
push 0x20019
push ebx
push 0x1001714
push 0x80000002
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
jne 0x100beae
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbb4]
push eax
lea eax, [ebp - 0x544]
push eax
mov dword [ebp - 0xbc0], ebx
push ebx
jmp 0x100bd4a
mov eax, dword [ebp - 0xbac]
lea ecx, [ebp - 0xba8]
mov dword [ebp - 0xba8], ebx
mov dword [ebp - 0xbd8], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x544]
push eax
push dword [ebp - 0xbd8]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100bd76
push eax
lea eax, [ebp - 0x544]
push eax
push 0x1003e58
call fcn.0100d383
add esp, 0xc
mov byte [0x1019888], 1
lea ecx, [ebp - 0xba8]
call fcn.01005bf7
inc dword [ebp - 0xbc0]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbb4]
push eax
lea eax, [ebp - 0x544]
push eax
push dword [ebp - 0xbc0]
push dword [ebp - 0xbac]
mov dword [ebp - 0xbb4], esi
call edi
cmp eax, ebx
je 0x100bcc8
cmp eax, 0x103
je 0x100bec7
push eax
push 0x1003e08
jmp 0x100beb9
lea eax, [ebp - 0xba4]
push eax
lea eax, [ebp - 0xbe4]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
push 0x1004094
push dword [ebp - 0xba8]
mov dword [ebp - 0xba4], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100bd21
cmp dword [ebp - 0xbb0], 4
jne 0x100bdc5
cmp dword [ebp - 0xbe4], 1
jne 0x100bd21
push 0x103
lea eax, [ebp - 0x12f]
push ebx
push eax
mov byte [ebp - 0x130], bl
call fcn.0100d7e0
mov eax, 0x1003088
add esp, 0xc
mov dword [ebp - 0xbf4], eax
mov dword [ebp - 0xbf0], 0x1004080
mov dword [ebp - 0xbec], ebx
mov dword [ebp - 0xb9c], ebx
lea ecx, [ebp - 0xba4]
push ecx
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0xbb0]
push ecx
push ebx
push eax
push dword [ebp - 0xba8]
mov dword [ebp - 0xba4], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100be37
cmp dword [ebp - 0xbb0], 1
je 0x100be4e
inc dword [ebp - 0xb9c]
mov eax, dword [ebp - 0xb9c]
mov eax, dword [ebp + eax*4 - 0xbf4]
cmp eax, ebx
jne 0x100be01
cmp byte [ebp - 0x130], bl
je 0x100bd21
push 0xa
pop eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.010079df
add esp, 0x14
lea ecx, [ebp - 0xba8]
test al, al
jne 0x100bd27
mov byte [0x1019888], 1
jmp 0x100bc2d
cmp eax, 2
je 0x100bec7
push eax
push 0x1003dc0
call fcn.0100d383
pop ecx
mov byte [0x1019888], 1
pop ecx
lea ecx, [ebp - 0xbac]
call fcn.01005bd9
push eax
push 0x20019
push ebx
push 0x1002ff8
push 0x80000002
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
jne 0x100c0db
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbb8]
push eax
lea eax, [ebp - 0x648]
push eax
mov dword [ebp - 0xbdc], ebx
push ebx
jmp 0x100c0a4
mov eax, dword [ebp - 0xbac]
lea ecx, [ebp - 0xba0]
mov dword [ebp - 0xba0], ebx
mov dword [ebp - 0xbd8], eax
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x648]
push eax
push dword [ebp - 0xbd8]
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100bf60
push eax
lea eax, [ebp - 0x648]
push eax
push 0x1003d70
jmp 0x100c06c
push 0x103
lea eax, [ebp - 0x12f]
push ebx
push eax
mov dword [ebp - 0xbc0], ebx
mov byte [ebp - 0x130], bl
call fcn.0100d7e0
push 0x103
lea eax, [ebp - 0x543]
push ebx
push eax
mov dword [ebp - 0xba4], esi
mov byte [ebp - 0x544], bl
call fcn.0100d7e0
add esp, 0x18
lea eax, [ebp - 0xba4]
push eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
lea eax, [ebp - 0xbb4]
push eax
lea eax, [ebp - 0x544]
push eax
push ebx
jmp 0x100c03e
inc dword [ebp - 0xbc0]
push 0xa
pop eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.010079df
add esp, 0x14
test al, al
je 0x100c0c9
lea eax, [ebp - 0xba4]
push eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
lea eax, [ebp - 0xbb4]
push eax
lea eax, [ebp - 0x544]
push eax
push dword [ebp - 0xbc0]
mov dword [ebp - 0xba4], esi
push dword [ebp - 0xba0]
mov dword [ebp - 0xbb4], esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, ebx
je 0x100bfc6
cmp eax, 0x103
je 0x100c07b
push eax
lea eax, [ebp - 0x648]
push eax
push 0x1003d18
call fcn.0100d383
mov byte [0x1019888], 1
add esp, 0xc
lea ecx, [ebp - 0xba0]
call fcn.01005bf7
inc dword [ebp - 0xbdc]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbb8]
push eax
lea eax, [ebp - 0x648]
push eax
push dword [ebp - 0xbdc]
push dword [ebp - 0xbac]
mov dword [ebp - 0xbb8], esi
call edi
cmp eax, ebx
je 0x100bf11
cmp eax, 0x103
je 0x100c0f4
push eax
push 0x1003cb8
jmp 0x100c0e6
mov byte [0x1019888], 1
lea ecx, [ebp - 0xba0]
jmp 0x100bc2d
cmp eax, 2
je 0x100c0f4
push eax
push 0x1003c60
call fcn.0100d383
pop ecx
mov byte [0x1019888], 1
pop ecx
lea ecx, [ebp - 0xbac]
call fcn.01005bd9
push eax
push 0x20019
push ebx
push 0x1003150
push 0x80000002
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
jne 0x100c289
push 9
pop ecx
xor eax, eax
push ebx
mov byte [ebp - 0x2c], bl
lea edi, [ebp - 0x2b]
rep stosd dword es:[edi], eax
push ebx
push ebx
stosw word es:[edi], ax
push ebx
lea eax, [ebp - 0xba4]
push eax
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0xbb4], ebx
push ebx
jmp 0x100c25c
mov edi, dword [ebp - 0xbac]
lea ecx, [ebp - 0xba0]
mov dword [ebp - 0xba0], ebx
call fcn.01005bd9
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x2c]
push eax
push edi
call fcn.01005c13
add esp, 0x14
cmp eax, ebx
je 0x100c197
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x1003c10
call fcn.0100d383
add esp, 0xc
mov byte [0x1019888], 1
jmp 0x100c236
push 0x103
lea eax, [ebp - 0x12f]
push ebx
push eax
mov byte [ebp - 0x130], bl
call fcn.0100d7e0
add esp, 0xc
lea eax, [ebp - 0xbd8]
push eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xbb0]
push eax
push ebx
push 0x1003088
push dword [ebp - 0xba0]
mov dword [ebp - 0xbd8], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x100c236
cmp dword [ebp - 0xbb0], 1
jne 0x100c236
cmp byte [ebp - 0x130], bl
je 0x100c236
push 0xa
pop eax
mov dword [ebp - 0xc58], eax
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0xbc8]
push eax
lea eax, [ebp - 0xc60]
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.010079df
add esp, 0x14
test al, al
je 0x100c0c9
lea ecx, [ebp - 0xba0]
call fcn.01005bf7
inc dword [ebp - 0xbb4]
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xba4]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0xbb4]
push dword [ebp - 0xbac]
mov dword [ebp - 0xba4], 0x27
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
cmp eax, ebx
je 0x100c14a
cmp eax, 0x103
je 0x100c2a2
push eax
push 0x1003bc0
jmp 0x100c294
cmp eax, 2
je 0x100c2a2
push eax
push 0x1003b70
call fcn.0100d383
pop ecx
mov byte [0x1019888], 1
pop ecx
mov edi, 0x1002d0c
mov esi, 0x209
cmp byte [ebp - 0x74c], bl
je 0x100c356
push 1
lea eax, [ebp - 0xbd4]
push eax
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x74c]
push eax
mov dword [ebp - 0xc90], 0xa
call fcn.0100795d
add esp, 0x10
test al, al
jne 0x100c2f1
mov byte [0x1019888], 1
jmp 0x100c708
lea eax, [ebp - 0x74c]
push eax
push esi
lea eax, [ebp - 0x33c]
push eax
call fcn.0100734b
lea eax, [ebp - 0x33c]
push 0x5c
push eax
call fcn.0100d8c0
pop ecx
pop ecx
cmp eax, ebx
je 0x100c356
push edi
lea ecx, [ebp - 0x133]
sub ecx, eax
push ecx
push eax
call fcn.0100734b
push 1
lea eax, [ebp - 0xbd4]
push eax
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x33c]
push eax
mov dword [ebp - 0xc90], 0xa
call fcn.0100795d
add esp, 0x10
test al, al
je 0x100c2e5
push esi
lea eax, [ebp - 0x33c]
push eax
push 0x1002d14
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x100c3ac
push edi
push esi
lea eax, [ebp - 0x33c]
push eax
call fcn.010073d2
push 1
lea eax, [ebp - 0xbd4]
push eax
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x33c]
push eax
mov dword [ebp - 0xc90], 0xa
call fcn.0100795d
add esp, 0x10
test al, al
je 0x100c2e5
lea eax, [ebp - 0xbe0]
push eax
mov byte [ebp - 0x33c], bl
mov dword [ebp - 0xbe0], ebx
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
jne 0x100c45c
lea eax, [ebp - 0xbf8]
push eax
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x100c44a
lea eax, [ebp - 0x33c]
push eax
push dword [ebp - 0xbf8]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
je 0x100c438
lea eax, [ebp - 0x33c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100c401
sub eax, edx
cmp byte [ebp + eax - 0x33d], 0x5c
je 0x100c426
push 0x1001a24
push esi
lea eax, [ebp - 0x33c]
push eax
call fcn.010073d2
push 0x1002cf8
push esi
lea eax, [ebp - 0x33c]
push eax
call fcn.010073d2
mov eax, dword [ebp - 0xbe0]
push dword [ebp - 0xbf8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0xbe0]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0xbe0], ebx
cmp byte [ebp - 0x33c], bl
je 0x100c495
push 1
lea eax, [ebp - 0xbd4]
push eax
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x33c]
push eax
mov dword [ebp - 0xc90], 0xa
call fcn.0100795d
add esp, 0x10
test al, al
je 0x100c2e5
cmp dword [ebp - 0xbcc], ebx
je 0x100c539
mov dword [ebp - 0xb9c], ebx
jbe 0x100c539
mov edi, dword [ebp - 0xb9c]
mov eax, dword [ebp - 0xc2c]
shl edi, 2
add eax, edi
push 0x5c
push dword [eax]
call fcn.0100d8c0
pop ecx
pop ecx
cmp eax, ebx
je 0x100c521
mov ecx, dword [ebp - 0xc2c]
add ecx, edi
sub eax, dword [ecx]
mov edi, eax
push edi
push dword [ecx]
lea eax, [ebp - 0x33c]
push esi
push eax
call fcn.01007385
push 1
lea eax, [ebp - 0xbd4]
push eax
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x33c]
push eax
mov byte [ebp + edi - 0x33c], bl
mov dword [ebp - 0xc90], 0xa
call fcn.0100795d
add esp, 0x10
test al, al
je 0x100c2e5
inc dword [ebp - 0xb9c]
mov eax, dword [ebp - 0xb9c]
cmp eax, dword [ebp - 0xbcc]
jb 0x100c4ad
mov dword [ebp - 0xbbc], ebx
cmp dword [ebp - 0xbd4], ebx
jbe 0x100c708
mov dword [ebp - 0xba0], ebx
cmp dword [ebp - 0xbc8], ebx
jbe 0x100c6f0
mov eax, dword [ebp - 0xc98]
mov ecx, dword [ebp - 0xbbc]
push dword [eax + ecx*4]
lea eax, [ebp - 0x33c]
push esi
push eax
call fcn.0100734b
lea eax, [ebp - 0x33c]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100c582
sub eax, edi
cmp byte [ebp + eax - 0x33c], 0x5c
je 0x100c5a7
push 0x1001a24
push esi
lea eax, [ebp - 0x33c]
push eax
call fcn.010073d2
push 0x1003b6c
push esi
lea eax, [ebp - 0x33c]
push eax
call fcn.010073d2
lea eax, [ebp - 0x33c]
push 0x2a
push eax
call fcn.0100d8c0
pop ecx
pop ecx
mov ecx, dword [ebp - 0xba0]
mov dword [ebp - 0xba4], eax
mov eax, dword [ebp - 0xc60]
push dword [eax + ecx*4]
lea eax, [ebp - 0x33c]
push esi
push eax
call fcn.010073d2
lea eax, [ebp - 0xb98]
push eax
lea eax, [ebp - 0x33c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x100c638
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x100c6d8
cmp eax, 3
je 0x100c6d8
push eax
lea eax, [ebp - 0x33c]
push eax
push 0x1003b2c
call fcn.0100d383
add esp, 0xc
jmp 0x100c6d8
test byte [ebp - 0xb98], 0x10
jne 0x100c69f
lea eax, [ebp - 0xb6c]
push eax
lea eax, [ebp - 0x133]
sub eax, dword [ebp - 0xba4]
push eax
push dword [ebp - 0xba4]
call fcn.0100734b
push ebx
lea eax, [ebp - 0xc2c]
push eax
lea eax, [ebp - 0x33c]
push eax
mov dword [ebp - 0xc24], 0xa
call fcn.01007908
add esp, 0xc
test al, al
jne 0x100c69f
lea eax, [ebp - 0x33c]
push ebx
push eax
call fcn.01007db7
pop ecx
pop ecx
test al, al
jne 0x100c69f
mov byte [0x1019888], 1
lea eax, [ebp - 0xb98]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
cmp eax, ebx
jne 0x100c638
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x100c6d1
push eax
lea eax, [ebp - 0x33c]
push eax
push 0x1003ae8
call fcn.0100d383
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
inc dword [ebp - 0xba0]
mov eax, dword [ebp - 0xba0]
cmp eax, dword [ebp - 0xbc8]
jb 0x100c55d
inc dword [ebp - 0xbbc]
mov eax, dword [ebp - 0xbbc]
cmp eax, dword [ebp - 0xbd4]
jb 0x100c54b
xor esi, esi
cmp dword [ebp - 0xc5c], ebx
jle 0x100c730
mov eax, dword [ebp - 0xc60]
lea eax, [eax + esi*4]
cmp dword [eax], ebx
je 0x100c727
push dword [eax]
call fcn.0100dd83
pop ecx
inc esi
cmp esi, dword [ebp - 0xc5c]
jl 0x100c712
xor esi, esi
cmp dword [ebp - 0xc28], ebx
jle 0x100c758
mov eax, dword [ebp - 0xc2c]
lea eax, [eax + esi*4]
cmp dword [eax], ebx
je 0x100c74f
push dword [eax]
call fcn.0100dd83
pop ecx
inc esi
cmp esi, dword [ebp - 0xc28]
jl 0x100c73a
xor esi, esi
cmp dword [ebp - 0xc94], ebx
jle 0x100c780
mov eax, dword [ebp - 0xc98]
lea eax, [eax + esi*4]
cmp dword [eax], ebx
je 0x100c777
push dword [eax]
call fcn.0100dd83
pop ecx
inc esi
cmp esi, dword [ebp - 0xc94]
jl 0x100c762
cmp byte [0x1019888], bl
lea ecx, [ebp - 0xbac]
sete bl
call fcn.01005bf7
cmp dword [ebp - 0xc5c], 0xa
jle 0x100c7a9
push dword [ebp - 0xc60]
call fcn.0100d79a
pop ecx
cmp dword [ebp - 0xc28], 0xa
jle 0x100c7be
push dword [ebp - 0xc2c]
call fcn.0100d79a
pop ecx
cmp dword [ebp - 0xc94], 0xa
jle 0x100c7d3
push dword [ebp - 0xc98]
call fcn.0100d79a
pop ecx
mov al, bl
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0100d419
leave
ret