Function at 0x404a10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x430
mov eax, dword [0x42b21c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x418], 0
call fcn.00403ea0
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404140
add esp, 8
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x418], 0
jne 0x404b50
cmp dword [ebp + 0xc], 0x77
jne 0x404b2d
mov dword [ebp - 0x41c], 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00404140
add esp, 8
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x418], 0
jne 0x404b18
cmp dword [ebp - 0x41c], 0xa
jge 0x404b18
push 0x2e
mov ecx, dword [ebp + 8]
push ecx
call fcn.004062e0
add esp, 8
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0
je 0x404b13
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.00411328
add esp, 4
test eax, eax
je 0x404b13
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00404140
add esp, 8
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x41c]
add eax, 1
mov dword [ebp - 0x41c], eax
jmp 0x404a85
cmp dword [ebp - 0x418], 0
jne 0x404b2b
mov dword [ebp - 0x418], 8
jmp 0x404b50
cmp dword [ebp + 0xc], 0x76
jne 0x404b50
mov ecx, dword [ebp - 0x420]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00405e00
add esp, 0xc
mov dword [ebp - 0x418], eax
cmp dword [ebp + 0xc], 0x76
jne 0x404db9
cmp dword [ebp - 0x418], 8
jne 0x404db9
mov cl, byte [0x421437]
mov byte [ebp - 0x310], cl
push 0x103
push 0
lea edx, [ebp - 0x30f]
push edx
call fcn.0040bfd0
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.00406c90
add esp, 4
test eax, eax
je 0x404bf6
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x42c], edx
cmp dword [ebp - 0x42c], 0x104
jae 0x404bde
jmp 0x404be3
call fcn.0040b0c7
mov eax, dword [ebp - 0x42c]
mov byte [ebp + eax - 0x310], 0
jmp 0x404cd9
mov ecx, dword [str.windows_system]
push ecx
call fcn.00406c90
add esp, 4
test eax, eax
je 0x404c22
mov edx, dword [str.windows_system]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404cd9
mov ecx, dword [str.winnt_system32]
push ecx
call fcn.00406c90
add esp, 4
test eax, eax
je 0x404c4e
mov edx, dword [str.winnt_system32]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404cd9
mov ecx, dword [str.c:windows_system]
push ecx
call fcn.00406c90
add esp, 4
test eax, eax
je 0x404c77
mov edx, dword [str.c:windows_system]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404cd9
mov ecx, dword [str.c:winnt_system32]
push ecx
call fcn.00406c90
add esp, 4
test eax, eax
je 0x404ca0
mov edx, dword [str.c:winnt_system32]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404cd9
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x430], edx
cmp dword [ebp - 0x430], 0x104
jae 0x404cbc
jmp 0x404cc1
call fcn.0040b0c7
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 0x404db9
push 0x421590
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.00410217
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 0x404d9e
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 0x404db9
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