Function at 0x4c2080
Capabilities:
Copy file
Create process on windows
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x59c
mov eax, dword [0x5f8310]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x114]
push eax
push 0x20019
push 0
push str.CLSIDB0475003_7740_11D1_BDC3_0020AF9F8E6E
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jne 0x4c20d7
mov ecx, dword [ebp - 0x114]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x4c2426
push 0x104
push 0
lea edx, [ebp - 0x550]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x448]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x110]
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
push 0
lea edx, [ebp - 0x340]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x238]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x238]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [ebp - 0x238]
push edx
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
sub eax, 1
mov dword [ebp - 0x59c], eax
jmp 0x4c218e
mov ecx, dword [ebp - 0x59c]
sub ecx, 1
mov dword [ebp - 0x59c], ecx
cmp dword [ebp - 0x59c], 0
jle 0x4c21be
mov edx, dword [ebp - 0x59c]
movsx eax, byte [ebp + edx - 0x238]
cmp eax, 0x5c
jne 0x4c21ae
jmp 0x4c21be
mov ecx, dword [ebp - 0x59c]
mov byte [ebp + ecx - 0x238], 0
jmp 0x4c217f
push 0x104
lea edx, [ebp - 0x340]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x448]
push ecx
call fcn.004c5be0
add esp, 8
push str._ttf16.ocx
lea edx, [ebp - 0x448]
push edx
call sub.MSVCR90.dll_strcat
add esp, 8
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x550]
push ecx
call fcn.004c5be0
add esp, 8
push 0x5a58b4
lea edx, [ebp - 0x550]
push edx
call sub.MSVCR90.dll_strcat
add esp, 8
push 0
lea eax, [ebp - 0x448]
push eax
lea ecx, [ebp - 0x550]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea edx, [ebp - 0x340]
push edx
lea eax, [ebp - 0x448]
push eax
call fcn.004c5be0
add esp, 8
push str._ttfi6.ocx
lea ecx, [ebp - 0x448]
push ecx
call sub.MSVCR90.dll_strcat
add esp, 8
lea edx, [ebp - 0x238]
push edx
lea eax, [ebp - 0x550]
push eax
call fcn.004c5be0
add esp, 8
push 0x5a58cc
lea ecx, [ebp - 0x550]
push ecx
call sub.MSVCR90.dll_strcat
add esp, 8
push 0
lea edx, [ebp - 0x448]
push edx
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x340]
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.004c5be0
add esp, 8
push 0x5a58d8
lea eax, [ebp - 0x448]
push eax
call sub.MSVCR90.dll_strcat
add esp, 8
lea ecx, [ebp - 0x448]
push ecx
lea edx, [ebp - 0x110]
push edx
call fcn.004c5be0
add esp, 8
push str.ttf16.ocx
lea eax, [ebp - 0x448]
push eax
call sub.MSVCR90.dll_strcat
add esp, 8
push 0x44
push 0
lea ecx, [ebp - 0x598]
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [ebp - 0x598], 0x44
lea edx, [ebp - 0x12c]
push edx
lea eax, [ebp - 0x598]
push eax
push 0
push 0
push 0x20
push 0
push 0
push 0
lea ecx, [ebp - 0x448]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4c236f
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
mov eax, dword [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
mov ecx, dword [ebp - 0x12c]
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x4c2384
push 0
push 0
push 0x5a58f4
call sub.mfc90.dll_Ordinal_1183
xor eax, eax
jmp 0x4c2426
push str.ttfi6.ocx
lea edx, [ebp - 0x110]
push edx
call sub.MSVCR90.dll_strcat
add esp, 8
push 0x44
push 0
lea eax, [ebp - 0x598]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [ebp - 0x598], 0x44
lea ecx, [ebp - 0x12c]
push ecx
lea edx, [ebp - 0x598]
push edx
push 0
push 0
push 0x20
push 0
push 0
push 0
lea eax, [ebp - 0x110]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4c240f
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
mov edx, dword [ebp - 0x12c]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
mov eax, dword [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x4c2421
push 0
push 0
push 0x5a5914
call sub.mfc90.dll_Ordinal_1183
xor eax, eax
jmp 0x4c2426
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005795a6
mov esp, ebp
pop ebp
ret