Function at 0x100bb9b2
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
lea ebp, [esp - 0x2b4]
sub esp, 0x334
mov eax, dword [0x1023904c]
xor eax, ebp
mov dword [ebp + 0x2b0], eax
mov eax, dword [ebp + 0x2c0]
push ebx
push esi
mov esi, dword [ebp + 0x2bc]
push edi
mov edi, dword [ebp + 0x2dc]
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x6c], edi
call fcn.1000e7de
cmp dword [ebp + 0x2d8], 0
mov ebx, dword [ebp + 0x2cc]
jne 0x10102bb3
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 0x2d0]
push dword [ebp + 0x2c8]
push dword [ebp + 0x2c4]
push esi
call dword [0x1023a4c8]
xor esi, esi
test eax, eax
jne 0x10102b8a
mov edi, dword [ebp - 0x68]
test edi, 0xffff0000
je 0x100bba62
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x100bba3c
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 1]
call fcn.1000c5c0
mov eax, esp
push edi
push eax
call fcn.1000c540
mov edi, eax
test ebx, ebx
jne 0x10102b56
push edi
lea ecx, [ebp - 0x80]
call fcn.100dcd86
test eax, eax
je 0x100bbac9
push esi
push edi
call dword [sym.imp.msvcr100.dll__access_s]
neg eax
sbb eax, eax
pop ecx
pop ecx
inc eax
je 0x100bbac9
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x100bbabe
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
lea ecx, [ebp - 0x80]
call fcn.1001b92f
mov eax, esi
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x2b0]
xor ecx, ebp
call fcn.10001e57
add ebp, 0x2b4
leave
ret 0x28
push dword [ebp - 0x68]
call dword [0x1023a4d4]
jmp 0x100bba94
push dword [ebp - 0x68]
call dword [0x1023a4d4]
jmp 0x10102b87
lea eax, [ebp - 0x70]
push eax
push edi
call fcn.10159c7b
test eax, eax
je 0x100bbac9
push 0xa
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x70]
call dword [sym.imp.msvcr100.dll_strtoul]
add esp, 0xc
cmp eax, ebx
je 0x100bba6a
jmp 0x100bbac9
mov edi, dword [ebp - 0x6c]
cmp dword [ebp + 0x2e0], 3
jne 0x10102bb3
push 0x104
lea eax, [ebp - 0x60]
push eax
push esi
push esi
call fcn.100b7d69
test eax, eax
js 0x10102bb3
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [edi], eax
mov ecx, 0x10240be8
call fcn.1015692e
push eax
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_lstrcpyA]
push ebx
push dword [ebp + 0x2c8]
lea eax, [ebp + 0x1a8]
push dword [ebp + 0x2c4]
push dword [ebp - 0x64]
push eax
call fcn.10159a67
mov esi, eax
cmp esi, 0xc39e
jne 0x10102c62
cmp dword [ebp + 0x2d4], 0
je 0x10102c66
push 0x104
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
push ebx
push dword [ebp + 0x2c8]
lea eax, [ebp + 0x1a8]
push dword [ebp + 0x2c4]
push dword [ebp - 0x64]
push eax
call fcn.10159a67
mov esi, eax
cmp esi, 0xc39e
jne 0x10102c62
push 0x104
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryA]
push ebx
push dword [ebp + 0x2c8]
lea eax, [ebp + 0x1a8]
push dword [ebp + 0x2c4]
push dword [ebp - 0x64]
push eax
call fcn.10159a67
mov esi, eax
test esi, esi
je 0x10102c74
push dword [ebp - 0x64]
push esi
call fcn.100d7b87
jmp 0x100bba94
test edi, edi
je 0x100bba94
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
lea eax, [ebp + eax + 0x1a8]
push eax
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.USER32.dll_CharPrevA]
cmp byte [eax], 0x5c
je 0x10102cb5
push 0x1001b980
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_lstrcatA]
push dword [ebp - 0x64]
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_lstrcatA]
test ebx, ebx
je 0x10102cf3
lea ecx, [ebp + 0x1a8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10102cd2
sub ecx, edx
push ebx
lea eax, [ebp + 0x1a8]
add eax, ecx
push 0x1014c6bc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp + 0x1a8]
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
lea eax, [ebp + 0x1a8]
push eax
call fcn.1001b294
mov dword [edi], eax
jmp 0x100bba94