Function at 0x40152e
Capabilities:
Check if file exists
Copy file
Create process on windows
Get common file path
Get file attributes
Identify system language via api

Disassembly:
push 0x29c
mov eax, 0x51855d
call fcn.004f7cab
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
lea eax, [ebp - 0x254]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
push 0x5447c4
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x2a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
push 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or dword [ebp - 4], 0xffffffff
mov edi, 0x104
push edi
lea eax, [ebp - 0x120]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40159f
xor al, al
call fcn.004f7d2e
ret
push 0x5447d0
call esi
mov ebx, dword [sym.imp.USER32.dll_SetWindowTextA]
push eax
call ebx
push 0xfffffffffffffff0
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
lea eax, [ebp - 0x254]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x2a0]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x228]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x401597
push 4
mov dword [ebp - 0x18], 0x652e7468
mov word [ebp - 0x14], 0x6578
mov byte [ebp - 0x12], 0
call esi
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push eax
call edi
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x270]
call fcn.00401ef6
push 4
call esi
push eax
call edi
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x244]
push eax
lea edi, [ebp - 0x270]
mov dword [ebp - 4], 6
call fcn.00402036
pop ecx
pop ecx
lea eax, [ebp - 0x254]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov edi, dword [sym.imp.KERNEL32.dll_GetACP]
call edi
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x28c]
mov dword [ebp - 4], 9
call fcn.00401ef6
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
mov eax, SysReAllocStringLen
push eax
push eax
push eax
push eax
push 0xcf0000
push str.eK
push 0x5447e0
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 0x34f
push 0x30a
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
push 0x5447e4
call esi
push eax
call ebx
call edi
push 0x5447ec
call esi
push eax
call ebx
push 0x5447f4
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x28c]
call fcn.00401f4d
cmp eax, 0xffffffff
je 0x40171e
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
lea esi, [ebp - 0x28c]
call fcn.004010fb
push ebx
lea esi, [ebp - 0x244]
call fcn.004010fb
push ebx
lea esi, [ebp - 0x270]
call fcn.004010fb
jmp 0x401597
cmp dword [ebp - 0x230], 0x10
mov eax, dword [ebp - 0x244]
jae 0x401733
lea eax, [ebp - 0x244]
xor edi, edi
push edi
push eax
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x4016f0
cmp dword [ebp - 0x230], 0x10
mov eax, dword [ebp - 0x244]
jae 0x40175d
lea eax, [ebp - 0x244]
xor ebx, ebx
inc ebx
push ebx
push edi
push edi
push eax
push str.open
push edi
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0xffffffffffffffeb
mov edi, eax
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
lea eax, [ebp - 0x2a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp edi, 0x20
jg 0x4017d4
mov byte [ebp - 0x2a1], 0
push ebx
xor edi, edi
lea esi, [ebp - 0x28c]
call fcn.004010fb
push ebx
lea esi, [ebp - 0x244]
call fcn.004010fb
push ebx
lea esi, [ebp - 0x270]
call fcn.004010fb
mov al, byte [ebp - 0x2a1]
jmp 0x401599
mov byte [ebp - 0x2a1], bl
jmp 0x4017a3