Function at 0x404a20
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x430
mov eax, dword [0x42a21c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x418], 0
call fcn.00403eb0
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404150
add esp, 8
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x418], 0
jne 0x404b60
cmp dword [ebp + 0xc], 0x77
jne 0x404b3d
mov dword [ebp - 0x41c], 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00404150
add esp, 8
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x418], 0
jne 0x404b28
cmp dword [ebp - 0x41c], 0xa
jge 0x404b28
push 0x2e
mov ecx, dword [ebp + 8]
push ecx
call fcn.00406300
add esp, 8
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0
je 0x404b23
mov edx, dword [ebp - 0x424]
sub edx, 1
mov dword [ebp - 0x428], edx
mov eax, dword [ebp - 0x41c]
add eax, 0x30
mov ecx, dword [ebp - 0x428]
mov byte [ecx], al
mov edx, dword [ebp - 0x428]
movsx eax, byte [edx]
push eax
call fcn.00410cb0
add esp, 4
test eax, eax
je 0x404b23
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00404150
add esp, 8
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x41c]
add eax, 1
mov dword [ebp - 0x41c], eax
jmp 0x404a95
cmp dword [ebp - 0x418], 0
jne 0x404b3b
mov dword [ebp - 0x418], 8
jmp 0x404b60
cmp dword [ebp + 0xc], 0x76
jne 0x404b60
mov ecx, dword [ebp - 0x420]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00405e20
add esp, 0xc
mov dword [ebp - 0x418], eax
cmp dword [ebp + 0xc], 0x76
jne 0x404dc9
cmp dword [ebp - 0x418], 8
jne 0x404dc9
mov cl, byte [0x420437]
mov byte [ebp - 0x310], cl
push 0x103
push 0
lea edx, [ebp - 0x30f]
push edx
call fcn.0040bfb0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [ebp - 0x108]
push ecx
lea edx, [ebp - 0x414]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x108]
push eax
call fcn.00406cb0
add esp, 4
test eax, eax
je 0x404c06
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x42c], edx
cmp dword [ebp - 0x42c], 0x104
jae 0x404bee
jmp 0x404bf3
call fcn.0040b0c3
mov eax, dword [ebp - 0x42c]
mov byte [ebp + eax - 0x310], 0
jmp 0x404ce9
mov ecx, dword [str.windows_system]
push ecx
call fcn.00406cb0
add esp, 4
test eax, eax
je 0x404c32
mov edx, dword [str.windows_system]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404ce9
mov ecx, dword [str.winnt_system32]
push ecx
call fcn.00406cb0
add esp, 4
test eax, eax
je 0x404c5e
mov edx, dword [str.winnt_system32]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404ce9
mov ecx, dword [str.c:windows_system]
push ecx
call fcn.00406cb0
add esp, 4
test eax, eax
je 0x404c87
mov edx, dword [str.c:windows_system]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404ce9
mov ecx, dword [str.c:winnt_system32]
push ecx
call fcn.00406cb0
add esp, 4
test eax, eax
je 0x404cb0
mov edx, dword [str.c:winnt_system32]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404ce9
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x430], edx
cmp dword [ebp - 0x430], 0x104
jae 0x404ccc
jmp 0x404cd1
call fcn.0040b0c3
mov eax, dword [ebp - 0x430]
mov byte [ebp + eax - 0x108], 0
mov dword [ebp - 0x418], 3
mov ecx, 1
imul edx, ecx, 0
movsx eax, byte [ebp + edx - 0x108]
test eax, eax
je 0x404dc9
push 0x420590
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edx, dword [str.regsvr32.exe]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push str._s_
lea ecx, [ebp - 0x310]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x104
lea edx, [ebp - 0x20c]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
lea ecx, [ebp - 0x20c]
push ecx
lea edx, [ebp - 0x310]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x20c]
push eax
call fcn.0040fb87
add esp, 4
mov ecx, dword [ebp - 0x420]
push ecx
lea edx, [ebp - 0x20c]
push edx
call fcn.00401340
add esp, 8
cmp dword [ebp - 0x420], 0
je 0x404dae
lea eax, [ebp - 0x20c]
push eax
push str.Did_write_Active_X_info
push 1
push str._s__s
call fcn.00401ce0
add esp, 0x10
jmp 0x404dc9
lea ecx, [ebp - 0x20c]
push ecx
push str.Did_NOT_write_Active_X_info
push 1
push str._s__s
call fcn.00401ce0
add esp, 0x10
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040af7c
mov esp, ebp
pop ebp
ret