Function at 0x403140
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x888
mov eax, dword [0x419168]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x828], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x82c], eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push eax
call fcn.00407130
xor eax, eax
push 0x40e
push eax
mov word [ebp - 0x824], ax
lea eax, [ebp - 0x822]
push eax
call fcn.00407130
movq xmm0, qword [str.OLRSubmission.exe]
mov eax, dword [0x4104a0]
movq qword [ebp - 0x20c], xmm0
movq xmm0, qword [0x410488]
movq qword [ebp - 0x204], xmm0
movq xmm0, qword [0x410490]
push 0x1e4
mov dword [ebp - 0x1ec], eax
movq qword [ebp - 0x1fc], xmm0
movq xmm0, qword [0x410498]
lea eax, [ebp - 0x1e8]
push 0
push eax
movq qword [ebp - 0x1f4], xmm0
call fcn.00407130
lea eax, [ebp - 0x20c]
push eax
push esi
push edi
push str._s_s_s
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.00406e86
add esp, 0x3c
test ebx, ebx
je 0x40328d
mov ecx, 0x410364
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403258
test dx, dx
je 0x403254
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403258
add eax, 4
add ecx, 4
test dx, dx
jne 0x403232
xor eax, eax
jmp 0x40325d
sbb eax, eax
or eax, 1
test eax, eax
je 0x40328d
mov esi, dword [ebp + 8]
push ebx
push esi
push dword [ebp - 0x82c]
lea eax, [ebp - 0x824]
push dword [ebp - 0x828]
push str._s__s__d__s
push 0x208
push eax
call fcn.00406e86
add esp, 0x1c
jmp 0x4032b6
mov esi, dword [ebp + 8]
push esi
push dword [ebp - 0x82c]
lea eax, [ebp - 0x824]
push dword [ebp - 0x828]
push str._s__s__d
push 0x208
push eax
call fcn.00406e86
add esp, 0x18
lea eax, [ebp - 0x414]
push eax
mov dword [ebp - 0x830], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4034dc
lea eax, [ebp - 0x414]
mov dword [ebp - 0x85c], eax
lea eax, [ebp - 0x824]
mov dword [ebp - 0x86c], 0x3c
mov dword [ebp - 0x868], 0x40
mov dword [ebp - 0x864], 0
mov dword [ebp - 0x860], str.Open
mov dword [ebp - 0x858], eax
mov dword [ebp - 0x854], 0x410364
mov dword [ebp - 0x850], 1
mov dword [ebp - 0x84c], 0
mov dword [ebp - 0x848], 0
mov dword [ebp - 0x844], 0
mov dword [ebp - 0x840], 0
mov dword [ebp - 0x83c], 0
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x834], 0
cmp esi, 2
je 0x403394
cmp esi, 1
je 0x403394
cmp esi, 3
jne 0x40348e
lea eax, [ebp - 0x86c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
jmp 0x40348e
lea eax, [ebp - 0x86c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x4033e0
push eax
push eax
lea eax, [ebp - 0x828]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
je 0x40348e
push dword [ebp - 0x828]
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x40348e
mov eax, dword [ebp - 0x834]
test eax, eax
je 0x40348e
push 0x12c
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40346f
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x888]
push eax
call esi
test eax, eax
je 0x403457
jmp 0x403430
lea eax, [ebp - 0x888]
push eax
call edi
lea eax, [ebp - 0x888]
push eax
call ebx
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x888]
push eax
call esi
test eax, eax
jne 0x403430
push 0x12c
push dword [ebp - 0x834]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x403413
lea eax, [ebp - 0x830]
push eax
push dword [ebp - 0x834]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x834]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x830]
mov edx, 1
cmp eax, 0xfffffff9
jne 0x4034b7
pop edi
pop esi
mov dword [0x419f48], edx
mov eax, edx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405a09
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x419f4c]
cmp eax, 0xfffffff8
pop edi
cmove ecx, edx
pop esi
mov dword [0x419f4c], ecx
mov eax, edx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405a09
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00405a09
mov esp, ebp
pop ebp
ret