Function at 0x4092d0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x14
mov ecx, dword [0x41f350]
mov edx, dword [0x41f0d0]
push ebx
push ebp
xor ebx, ebx
xor ebp, ebp
push esi
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4092ef
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 8]
test ah, 1
je 0x40935a
mov ecx, dword [0x41f36c]
mov edx, dword [0x41f0d0]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x409311
mov eax, dword [0x41f0d0]
push 0x5c
push eax
call fcn.004131d0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x409334
inc esi
jmp 0x40933a
mov esi, dword [0x41f0d0]
push ebx
push edi
call fcn.00403e30
add esp, 8
mov edx, esi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x409346
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
push ebx
push edi
mov dword [esp + 0x18], 1
call fcn.00403e30
mov esi, eax
push 0x5c
push esi
call fcn.004131d0
mov ebp, eax
add esp, 0x10
cmp ebp, ebx
je 0x40937f
inc ebp
jmp 0x409381
mov ebp, esi
mov eax, dword [edi + 0x10]
cmp eax, 0xa
ja case.0x40938d.4
jmp dword [eax*4 + 0x409590]
mov ecx, dword [0x41f0d0]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
jmp case.0x40938d.4
push 9
push edi
call fcn.00403e30
mov edx, dword [0x41f0d0]
add esp, 8
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x4093bc
mov eax, dword [0x41f0d0]
push 0x104
push eax
push eax
call fcn.00408290
mov al, byte [edi + 0xc]
add esp, 0xc
test al, 0x10
je case.0x40938d.4
mov dword [esp + 0x10], ebx
jmp case.0x40938d.4
mov edx, dword [0x41f0d0]
push 0x14
push edx
call fcn.00401090
add esp, 8
mov dword [esp + 0x14], 1
jmp case.0x40938d.4
mov eax, dword [0x41f0d0]
push 0x10
push eax
call fcn.00401090
add esp, 8
jmp case.0x40938d.4
mov ecx, dword [0x41f0d0]
push 5
push ecx
call fcn.00401090
add esp, 8
mov dword [esp + 0x10], ebx
jmp case.0x40938d.4
mov edx, dword [0x41f0d0]
push 0x1a
push edx
call fcn.00401090
add esp, 8
mov dword [esp + 0x10], ebx
jmp case.0x40938d.4
push 1
push 0x30c
call fcn.004133d2
mov esi, eax
add esp, 8
test esi, esi
lea ebx, [esi + 0x208]
jne 0x409486
mov eax, dword [0x41f0d0]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp 0x40950e
mov ecx, dword [0x41f0d0]
push ecx
call fcn.00402150
add esp, 4
mov edi, 0x104
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea edx, [esp + 0x1c]
lea eax, [esp + 0x20]
push edx
mov edx, dword [0x41f0d0]
push esi
lea ecx, [esi + 0x104]
push eax
push ecx
push edx
push ebx
push ebp
push 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
call sub.VERSION.dll_VerFindFileA
shr eax, 1
and eax, 1
mov dword [esp + 0x18], eax
jne 0x4094df
mov dword [esp + 0x14], 1
cmp byte [esi], 0
je 0x4094f8
mov edx, dword [0x41f0d0]
mov ecx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4094ec
jmp 0x409505
mov eax, dword [0x41f0d0]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push esi
call fcn.00413483
add esp, 4
mov edi, dword [esp + 0x28]
xor ebx, ebx
mov ecx, dword [0x41f0d0]
push ecx
call fcn.00402110
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, ebx
je 0x40952f
mov edi, ebp
jmp 0x40953b
push ebx
push edi
call fcn.00403e30
add esp, 8
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x41f0d0]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
je 0x409582
mov eax, dword [0x41f0d0]
push eax
call fcn.004013d0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret