Function at 0x42aed0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x824
mov eax, dword [0x488e40]
xor eax, esp
mov dword [esp + 0x81c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x830]
push esi
mov esi, dword [esp + 0x838]
push edi
xor eax, eax
push eax
mov edi, ecx
lea ecx, [esp + 0x2c]
push ecx
push 0x800
push eax
push ebp
push eax
mov ebx, edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
je 0x42af27
cmp eax, 0x800
jbe 0x42af2c
mov byte [esp + 0x28], 0
mov edx, dword [edi + 0x60]
test edx, edx
je 0x42afc2
mov eax, dword [edi + 0x50]
test eax, eax
je 0x42afc2
mov ecx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x30]
test cl, 2
je 0x42afc2
test ecx, 0x2000
jne 0x42afc2
mov ecx, dword [eax + 0x20]
mov ecx, dword [ecx + 8]
or ecx, dword [eax + 0x10]
test ecx, 0x40000
jne 0x42afc2
mov eax, dword [eax + 0x20]
cmp dword [eax + 0x74], 0xffffffff
je 0x42af7e
cmp dword [eax + 0x78], 1
ja 0x42af7e
cmp byte [0x48d50f], 0
je 0x42afc2
push ebp
call fcn.0042aa40
test eax, eax
jne 0x42b0b5
cmp byte [edi + 0x64], al
je 0x42afc2
mov eax, dword [edi + 0x60]
push 0x5c
push eax
call fcn.00455c50
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x42afc2
mov edx, dword [esp + 0x18]
mov byte [ebp], 0
push edx
mov edx, dword [edi + 0x60]
call fcn.0042aa40
test eax, eax
mov byte [ebp], 0x5c
jne 0x42b0b5
test ebx, ebx
je 0x42afcc
cmp dword [ebx + 0x20], 0
jne 0x42b009
mov eax, dword [edi + 0x50]
test eax, eax
je 0x42b183
mov ecx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x30]
test cl, 2
je 0x42b183
test ecx, 0x2000
jne 0x42b183
mov edx, dword [eax + 0x20]
mov ecx, dword [edx + 8]
or ecx, dword [eax + 0x10]
test ecx, 0x40000
jne 0x42b183
mov ebx, eax
test ebx, ebx
je 0x42b183
cmp dword [0x48d6b4], 0
je 0x42b183
cmp dword [0x48d6b8], 0
je 0x42b183
mov ebp, dword [edi + 0x50]
cmp ebx, ebp
jne 0x42b0bf
mov eax, edi
call fcn.00427600
test eax, eax
je 0x42b0bf
mov edx, dword [ebx + 0x20]
mov eax, dword [edx + 0x74]
cmp eax, 0xffffffff
je 0x42b183
lea ecx, [esp + 0x14]
push ecx
push eax
call dword [0x48d6b4]
test eax, eax
je 0x42b183
mov edx, dword [esp + 0x18]
push 0
push esi
push 0x800
push 0
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
je 0x42b086
cmp eax, 0x800
jbe 0x42b089
mov byte [esi], 0
mov eax, dword [esp + 0x14]
push eax
push 0
call dword [0x48d6b8]
cmp byte [esi], 0
je 0x42b183
lea ecx, [esp + 0x28]
push ecx
push esi
call fcn.00454706
add esp, 8
test eax, eax
je 0x42b183
mov eax, 1
jmp 0x42b24f
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov eax, edi
call fcn.00427600
test eax, eax
je 0x42b102
cmp ebx, ebp
je 0x42b102
mov ebp, dword [ebp + 0x20]
mov eax, dword [ebp + 0x74]
cmp eax, 0xffffffff
je 0x42b102
mov edx, dword [ebx + 0x20]
cmp dword [edx + 0x74], 0xffffffff
je 0x42b0f2
cmp dword [ebp + 0x78], 1
jne 0x42b102
lea ecx, [esp + 0x14]
push ecx
push eax
call dword [0x48d6b4]
mov ebp, eax
jmp 0x42b106
mov ebp, dword [esp + 0x1c]
mov edx, dword [ebx + 0x20]
mov eax, dword [edx + 0x74]
cmp eax, 0xffffffff
je 0x42b121
lea ecx, [esp + 0x20]
push ecx
push eax
call dword [0x48d6b4]
mov edi, eax
jmp 0x42b125
mov edi, dword [esp + 0x24]
test ebp, ebp
jne 0x42b12d
test edi, edi
je 0x42b183
mov edx, dword [esp + 0x18]
push 0
push esi
push 0x800
push 0
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
je 0x42b14f
cmp eax, 0x800
jbe 0x42b152
mov byte [esi], 0
test edi, edi
je 0x42b163
mov eax, dword [esp + 0x20]
push eax
push 0
call dword [0x48d6b8]
test ebp, ebp
je 0x42b174
mov ecx, dword [esp + 0x14]
push ecx
push 0
call dword [0x48d6b8]
cmp byte [esi], 0
je 0x42b183
lea edx, [esp + 0x28]
push edx
jmp 0x42b0a4
push 0x800
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x42b19a
cmp eax, 0x800
jle 0x42b1be
mov edi, str.C:Windows
mov eax, esi
mov edx, 0x7ff
sub edi, esi
mov cl, byte [edi + eax]
test cl, cl
je 0x42b1bb
mov byte [eax], cl
sub edx, 1
add eax, 1
test edx, edx
jg 0x42b1a8
mov byte [eax], 0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42b1c3
sub eax, edx
test eax, eax
jle 0x42b1e8
cmp eax, 0x7ff
jge 0x42b1e8
cmp byte [esi + eax - 1], 0x5c
je 0x42b1e8
mov byte [esi + eax], 0x5c
mov byte [esi + eax + 1], cl
mov ecx, 0x800
mov eax, str.WinSxS_
mov edx, esi
call fcn.00416b70
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42b200
sub eax, edx
push eax
lea eax, [esp + 0x2c]
push esi
push eax
call fcn.0045657b
add esp, 0xc
test eax, eax
jne 0x42b24d
lea edi, [esp + 0x28]
mov eax, esi
mov edx, 0x7ff
sub edi, esi
jmp 0x42b230
mov cl, byte [edi + eax]
test cl, cl
je 0x42b243
mov byte [eax], cl
sub edx, 1
add eax, 1
test edx, edx
jg 0x42b230
mov byte [eax], 0
mov eax, 1
jmp 0x42b24f
xor eax, eax
mov ecx, dword [esp + 0x82c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00454016
add esp, 0x824
ret 8