Function at 0x1003015f
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov eax, dword [ebp + 8]
push ebx
lea edx, [eax + 0x1b8]
push esi
mov ecx, eax
push edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], edx
cmp eax, edx
ja 0x1003031f
mov ebx, dword [ebp + 8]
mov eax, 0x216e
cmp ecx, eax
ja 0x10030362
je 0x1003034c
mov eax, ecx
sub eax, 0x212c
je 0x10030327
push 0xb
pop ecx
sub eax, ecx
je 0x100302c3
sub eax, ecx
je 0x1003022e
sub eax, ecx
je 0x10030222
sub eax, ecx
je 0x100301d5
sub eax, ecx
jne 0x1003048f
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 8]
mov byte [eax + ecx], 0
jmp 0x1003048f
mov esi, dword [ebp - 0x18]
push 0x38
pop eax
mov word [ebp - 0x3a], ax
lea eax, [ebp - 8]
push eax
push esi
call fcn.1004ca20
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x10030202
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100301f7
sub eax, edx
jmp 0x10030204
sub eax, esi
mov edi, eax
mov dword [ebp + 8], eax
lea eax, [edi + 1]
push eax
call fcn.1000361d
push edi
push esi
push eax
mov dword [ebp - 0x44], eax
call fcn.1004d810
jmp 0x1003048c
xor eax, eax
inc eax
mov word [ebp - 0x3c], ax
jmp 0x1003048f
lea eax, [ebp - 0x148]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10030237
sub eax, edx
mov esi, eax
mov eax, dword [ebp + 0x10]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10030248
sub eax, edi
lea eax, [esi + eax + 2]
push eax
call fcn.1000361d
mov edx, eax
lea eax, [ebp - 0x148]
pop ecx
mov esi, edx
mov ecx, eax
mov dword [ebp - 0x18], edx
sub esi, ecx
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x1003026d
lea edi, [edx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1003027a
mov eax, dword [ebp + 0x10]
mov esi, 0x10053b54
movsw word es:[edi], word [esi]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003028e
sub eax, esi
lea edi, [edx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x1003029a
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x44]
push eax
and ecx, 3
push 0x3c02
rep movsb byte es:[edi], byte [esi]
call fcn.1002ff66
jmp 0x10030438
push 0x6c
mov eax, 0x6c64
mov word [ebp - 0xf], ax
pop eax
push 0x103
mov word [ebp - 0xd], ax
lea eax, [ebp - 0x24b]
push 0
push eax
mov byte [ebp - 0x24c], 0
call fcn.1004d4c0
mov esi, 0x104
push esi
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.1004d150
add esp, 0x18
push esi
lea eax, [ebp - 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x1003048f
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret
push 0x2e
pop eax
push 0x64
mov word [ebp - 8], ax
pop eax
push 0x6c
mov word [ebp - 7], ax
pop eax
mov word [ebp - 6], ax
push 0x2e
mov word [ebp - 5], ax
pop eax
mov word [ebp - 0x10], ax
jmp 0x1003048f
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x10]
call fcn.1004ca20
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jmp 0x1003048f
mov eax, ecx
sub eax, 0x2179
je 0x1003044a
push 0xb
pop ecx
sub eax, ecx
je 0x1003043c
sub eax, ecx
je 0x1003042b
sub eax, 0x426e
je 0x100303d1
sub eax, ecx
je 0x1003039e
sub eax, ecx
jne 0x1003048f
or dword [ebx + 0x1bc8], 0xffffffff
jmp 0x10030322
xor eax, eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
lea eax, [ebx + 0x534]
mov dword [ebx + 0x18], 0x8000
mov dword [ebx + 0x70], eax
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x1bc4], 1
jmp 0x1003048f
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
xor edi, edi
push edi
push 0xb85
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
push edi
push edi
push edi
push edi
call fcn.10025e58
add esp, 0x1c
cmp eax, edi
jne 0x100304a6
mov eax, dword [esi]
mov ebx, dword [eax + 0x1c]
mov dword [ebx + 0x20], edi
mov eax, dword [esi]
mov dword [eax + 0x14], edi
mov eax, dword [esi]
mov dword [eax + 8], edi
mov eax, dword [esi]
mov dword [eax + 0x18], edi
mov eax, dword [ebx + 0xc]
cmp eax, edi
je 0x1003041f
mov ecx, dword [esi]
and eax, 1
mov dword [ecx + 0x30], eax
mov dword [ebx + 4], 0x3f34
mov dword [ebx + 8], edi
jmp 0x1003048f
push 0x4c53
push dword [ebp - 0x18]
call fcn.10034f88
pop ecx
pop ecx
jmp 0x1003048f
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x44]
push eax
call fcn.10037acf
jmp 0x1003048f
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x10030467
mov eax, dword [ebp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10030457
sub eax, edx
mov esi, eax
mov dword [ebp + 8], esi
jmp 0x1003046f
sub eax, dword [ebp + 0x10]
mov dword [ebp + 8], eax
mov esi, eax
lea eax, [esi + 1]
push eax
call fcn.1000361d
push esi
push dword [ebp + 0x10]
mov dword [ebp - 0x40], eax
push eax
call fcn.1004d810
mov eax, dword [ebp - 0x40]
mov byte [eax + esi], 0
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add ecx, 0xb
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x20]
jbe 0x10030187
jmp 0x1003031f
push 0xfffffffffffffffe
pop eax
jmp 0x10030322