Function at 0x416970
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x508bca
mov eax, dword fs:[0]
push eax
sub esp, 0x314
mov eax, dword [0x53b0f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
push str._INSTALLDIR_
lea ecx, [ebp - 0x250]
call fcn.00423890
mov byte [ebp - 4], 1
push str._SYSTEMDIR_
lea ecx, [ebp - 0x234]
call fcn.00423890
mov byte [ebp - 4], 2
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00414860
push eax
lea ecx, [ebp - 0x284]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00422820
mov dword [ebp - 0x304], eax
mov edx, dword [ebp - 0x304]
push edx
call fcn.004173f0
add esp, 8
mov byte [ebp - 0x2fd], al
lea ecx, [ebp - 0x284]
call fcn.00417b10
movzx eax, byte [ebp - 0x2fd]
test eax, eax
je 0x416ab3
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.00414860
mov esi, eax
lea ecx, [ebp - 0x24c]
call fcn.00414860
sub esi, eax
push esi
lea ecx, [ebp - 0x2b4]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004227a0
mov dword [ebp - 0x308], eax
mov edx, dword [ebp - 0x308]
mov dword [ebp - 0x30c], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
push eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp - 0x29c]
push edx
call fcn.00417430
add esp, 0xc
mov dword [ebp - 0x310], eax
mov eax, dword [ebp - 0x310]
push eax
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.00417c90
lea ecx, [ebp - 0x29c]
call fcn.00417b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2b4]
call fcn.00417b10
jmp 0x416c16
lea ecx, [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x230]
call fcn.00414860
push eax
lea edx, [ebp - 0x2cc]
push edx
mov ecx, dword [ebp + 8]
call fcn.00422820
mov dword [ebp - 0x314], eax
mov eax, dword [ebp - 0x314]
push eax
call fcn.004173f0
add esp, 8
mov byte [ebp - 0x2fe], al
lea ecx, [ebp - 0x2cc]
call fcn.00417b10
movzx ecx, byte [ebp - 0x2fe]
test ecx, ecx
je 0x416c16
mov dx, word [0x510490]
mov word [ebp - 0x218], dx
push 0x206
push 0
lea eax, [ebp - 0x216]
push eax
call fcn.004a2c70
add esp, 0xc
push 0x510494
lea ecx, [ebp - 0x26c]
call fcn.00423890
mov byte [ebp - 4], 4
push 0x104
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jbe 0x416b78
mov edx, 2
imul esi, edx, 0
push 0
lea ecx, [ebp - 0x268]
call fcn.00417d10
mov cx, word [ebp + esi - 0x218]
mov word [eax], cx
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.00414860
mov esi, eax
lea ecx, [ebp - 0x230]
call fcn.00414860
sub esi, eax
push esi
lea edx, [ebp - 0x2fc]
push edx
mov ecx, dword [ebp + 8]
call fcn.004227a0
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x31c], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x31c]
push ecx
lea edx, [ebp - 0x268]
push edx
lea eax, [ebp - 0x2e4]
push eax
call fcn.00417430
add esp, 0xc
mov dword [ebp - 0x320], eax
mov ecx, dword [ebp - 0x320]
push ecx
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.00417c90
lea ecx, [ebp - 0x2e4]
call fcn.00417b10
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2fc]
call fcn.00417b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x26c]
call fcn.00422090
mov byte [ebp - 0x2ff], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x234]
call fcn.00422090
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x250]
call fcn.00422090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00422090
mov al, byte [ebp - 0x2ff]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00434475
mov esp, ebp
pop ebp
ret