Function at 0x10010d6b
Capabilities:
Get common file path
Set current directory

Disassembly:
push 0xe4
mov eax, 0x1001670f
call fcn.10015df8
mov dword [ebp - 0xe8], ecx
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xf0], ecx
push 2
pop edx
mov eax, 0x3001001f
mov dword [ebp - 4], ecx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], 0x3d04000b
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], 0xfff0102
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xe0], ecx
mov word [ebp - 0xdc], 0x100
mov edi, dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
push ecx
push ecx
mov byte [ebp - 4], 1
call edi
lea ecx, [eax + eax]
push ecx
mov dword [ebp - 0xc0], eax
call dword [sym.imp.msvcr100.dll_malloc]
pop ecx
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x10010e4b
lea ecx, [ebp - 0xe4]
call fcn.10006a5c
mov ecx, dword [0x1002cd10]
or dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x10010e41
mov eax, dword [ecx]
push 0
call dword [eax + 8]
mov eax, 0xfffffc0d
jmp 0x10010fb3
push eax
push dword [ebp - 0xc0]
call edi
mov edi, dword [0x1002cd14]
xor eax, eax
cmp dword [edi + 0x38], eax
jne 0x10010e91
mov edi, eax
cmp word [ebx], ax
je 0x100110b9
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
or eax, 0x12
push eax
push esi
push ebx
push dword [ebp + 8]
call fcn.10009631
mov esi, dword [ebp - 0xbc]
jmp 0x10011259
mov edi, dword [edi + 0x38]
test edi, edi
je 0x10010e63
push dword [ebp - 0xc8]
mov ecx, edi
push esi
push ebx
call fcn.10009631
test eax, eax
jne 0x10010eb3
mov edi, dword [edi]
test edi, edi
jne 0x10010e98
jmp 0x10010e63
cmp dword [ebp + 0x1c], 0
jne 0x10011097
mov ecx, dword [edi + 0x18]
cmp dword [ecx + 0x10], 0
jne 0x10011097
lea eax, [ebp - 0xbc]
push eax
push SysReAllocStringLen
call fcn.10009631
test eax, eax
jns 0x10010eeb
mov esi, 0x80040111
xor ebx, ebx
jmp 0x10010f74
push dword [ebp - 0xbc]
mov ecx, dword [edi + 0x18]
call fcn.10009631
mov ecx, dword [ebp - 0xbc]
call fcn.10006af1
mov eax, dword [edi + 0x18]
push 1
lea ecx, [ebp - 0xac]
push ecx
mov ecx, dword [eax + 0x14]
call fcn.10009631
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov eax, dword [ecx + eax]
mov ecx, dword [eax]
xor ebx, ebx
push ebx
push ebx
push ebx
push eax
call dword [ecx + 0x28]
mov esi, eax
test esi, esi
js 0x10010f74
mov eax, dword [edi + 0x18]
lea ecx, [ebp - 0xbc]
push ecx
mov ecx, dword [eax + 0x14]
push ebx
push 0xc8
call fcn.10009631
mov esi, eax
test esi, esi
js 0x10010f74
mov ebx, dword [ebp - 0xbc]
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x10010fbb
mov ecx, ebx
call fcn.10008dc5
xor ebx, ebx
mov esi, ebx
mov eax, dword [ebp - 0xe8]
mov dword [eax + 0x10], edi
mov edi, dword [ebp - 0xec]
push edi
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
push edi
call dword [sym.imp.msvcr100.dll_free]
pop ecx
lea ecx, [ebp - 0xe4]
call fcn.10006a5c
mov ecx, dword [0x1002cd10]
or dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x10010fb1
mov eax, dword [ecx]
push ebx
call dword [eax + 8]
mov eax, esi
call fcn.10015e7b
ret 0x1c
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
test eax, eax
je 0x10011090
mov edx, ecx
mov dword [ebp - 0xc8], ecx
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [ebx]
neg ecx
sbb ecx, ecx
and ecx, 0x4b0
push ecx
push 0x41
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, dword [eax + edx + 0xc]
call fcn.10009631
push eax
call fcn.10009631
push 0x10
call fcn.10009631
mov esi, eax
pop ecx
test esi, esi
je 0x1001101b
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
jmp 0x1001101d
xor esi, esi
test esi, esi
je 0x100110af
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.10009631
mov eax, dword [ebx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + ecx + 0xc]
add eax, 0x18
push eax
mov ecx, esi
call fcn.10009631
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x10]
mov dword [esi], eax
mov dword [ecx + 0x10], esi
test dword [esi + 0xc], 0x4000
je 0x10011068
mov eax, dword [edi + 0x18]
mov dword [eax + 0x18], 1
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc8]
inc eax
add edx, 0xc
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], edx
cmp eax, dword [ebp - 0xc0]
jb 0x10010fd3
mov ecx, ebx
call fcn.10008dc5
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0xcc]
inc dword [edi + 0x1c]
mov dword [edx], ecx
call fcn.10006ab4
jmp 0x10010f70
mov esi, 0x8007000e
jmp 0x10010ee4
lea eax, [ebp - 0xd4]
push eax
push 0x20019
xor esi, esi
push esi
push 0x100018a0
push SysReAllocStringLen
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1001117d
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x1c]
push eax
push 1
push esi
push 0x100018cc
push dword [ebp - 0xd4]
mov dword [ebp - 0xd8], 0xa
call fcn.10009631
test eax, eax
jne 0x1001117d
cmp dword [ebp - 0xd8], esi
jbe 0x1001117d
cmp byte [ebp - 0x1c], 0x31
jne 0x10011171
cmp dword [ebp + 0x20], eax
push dword [ebp - 0xcc]
setne al
or eax, 0x8000002a
push eax
push esi
push esi
push dword [ebp + 8]
call fcn.10009631
mov esi, eax
test esi, esi
jns 0x1001115a
cmp esi, 0x80040113
je 0x10011149
mov esi, 0x80040111
push dword [ebp - 0xd4]
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x10010ee4
push dword [ebp - 0xd4]
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov esi, dword [ebp - 0xbc]
jmp 0x10011289
push dword [ebp - 0xd4]
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, dword [0x1002cd14]
mov dword [0x1002cd10], eax
lea eax, [ebp - 0xc0]
push eax
push esi
call fcn.10009631
test eax, eax
js 0x1001125f
mov ecx, dword [ebp - 0xc0]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.10009631
mov ecx, dword [ebp - 0xc0]
mov esi, eax
call fcn.10010185
test esi, esi
js 0x1001125f
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
call fcn.100085eb
mov esi, eax
lea ecx, [esi + 2]
push ecx
call dword [sym.imp.msvcr100.dll_malloc]
mov ebx, eax
pop ecx
test ebx, ebx
je 0x100110af
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
push esi
call fcn.10009631
push eax
push ebx
call sub.msvcr100.dll_memcpy
mov ecx, dword [ebp - 0xc4]
add esp, 0xc
call fcn.10008dc5
push dword [ebp - 0xcc]
xor eax, eax
shr esi, 1
mov word [ebx + esi*2], ax
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xbc]
or eax, 0x12
push eax
push esi
push ebx
push dword [ebp + 8]
call fcn.10009631
push ebx
mov dword [ebp - 0xc0], eax
call dword [sym.imp.msvcr100.dll_free]
mov ebx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xc0]
pop ecx
test eax, eax
jns 0x10011289
jmp 0x10011265
mov esi, dword [ebp - 0xbc]
push dword [ebp - 0xcc]
xor eax, eax
cmp dword [ebp + 0x20], eax
setne al
or eax, 0x2a
push eax
xor eax, eax
push eax
push eax
push eax
call fcn.10009631
test eax, eax
js 0x10010edf
push 0x24
call fcn.10009631
pop ecx
mov dword [ebp - 0xd0], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x100112bc
mov edx, dword [ebp - 0xcc]
push dword [edx]
mov ecx, eax
push dword [ebp - 0xc8]
push esi
push ebx
call fcn.10009631
mov edi, eax
xor ebx, ebx
jmp 0x100112c0
xor ebx, ebx
mov edi, ebx
mov byte [ebp - 4], 1
test edi, edi
jne 0x100112d2
mov esi, 0x8007000e
jmp 0x10010f74
add dword [edi + 0x1c], 2
cmp dword [ebp + 0x1c], 0
mov ecx, dword [0x1002cd14]
mov eax, dword [ecx + 0x38]
mov dword [edi], eax
mov dword [ecx + 0x38], edi
mov eax, dword [edi + 0x18]
mov dword [ecx + 0xc], eax
jne 0x10010f72
mov ecx, dword [edi + 0x18]
lea eax, [ebp - 0xbc]
push eax
push SysReAllocStringLen
call fcn.10009631
test eax, eax
jns 0x10011316
mov esi, 0x80040111
jmp 0x10010f74
push dword [ebp - 0xbc]
mov ecx, dword [edi + 0x18]
call fcn.10009631
mov ecx, dword [ebp - 0xbc]
call fcn.10006af1
mov eax, dword [edi + 0x18]
push 1
lea ecx, [ebp - 0xac]
push ecx
mov ecx, dword [eax + 0x14]
call fcn.10009631
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov eax, dword [ecx + eax]
mov ecx, dword [eax]
push ebx
push ebx
push ebx
push eax
call dword [ecx + 0x28]
mov esi, eax
test esi, esi
js 0x10010f74
mov eax, dword [edi + 0x18]
lea ecx, [ebp - 0xbc]
push ecx
mov ecx, dword [eax + 0x14]
push ebx
push 0xc8
call fcn.10009631
mov esi, eax
test esi, esi
js 0x10010f74
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x100113a6
mov ecx, edx
call fcn.10008dc5
jmp 0x10010f72
mov dword [ebp - 0xc0], ebx
test eax, eax
je 0x1001148a
mov dword [ebp - 0xc4], ebx
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [edx]
neg ecx
sbb ecx, ecx
and ecx, 0x4b0
push ecx
push 0x41
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, dword [eax + ebx + 0xc]
call fcn.10009631
push eax
call fcn.10009631
push 0x10
call fcn.10009631
mov ebx, eax
xor eax, eax
pop ecx
test ebx, ebx
je 0x10011407
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
jmp 0x10011409
mov ebx, eax
test ebx, ebx
je 0x100110af
lea eax, [ebp - 0xa0]
push eax
mov ecx, ebx
call fcn.10009631
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x10]
mov dword [ebx], eax
mov dword [ecx + 0x10], ebx
test dword [ebx + 0xc], 0x4000
je 0x1001143d
mov eax, dword [edi + 0x18]
mov dword [eax + 0x18], 1
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc4]
mov eax, dword [eax + ecx + 0xc]
add eax, 0x18
push eax
mov ecx, ebx
call fcn.10009631
mov eax, dword [ebp - 0xc0]
mov ebx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xbc]
inc eax
add ebx, 0xc
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], ebx
cmp eax, dword [ebp - 0xd0]
jb 0x100113ba
xor ebx, ebx
mov ecx, edx
call fcn.10008dc5
jmp 0x10010f74