Function at 0x4011e0
Capabilities:
Check if file exists
Create process on windows
Get file attributes
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
push ebx
push ebp
mov ebp, dword [esp + 0x70]
push ebp
call fcn.00403360
mov ebx, eax
add esp, 4
mov dword [esp + 0xc], ebx
test ebx, ebx
je 0x40165c
push esi
push edi
call fcn.0040a8bd
mov dword [eax], 0
jmp 0x401214
mov ebp, dword [esp + 0x78]
cmp dword [ebx + 0x144], 0
jne 0x401234
push 0x105
push 1
call fcn.0040ab44
add esp, 8
mov dword [ebx + 0x144], eax
jmp 0x401248
lea eax, [ebx + 4]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x4015f5
push 0x105
push 0
push dword [ebx + 0x144]
call fcn.00408a90
push 0x104
lea eax, [ebx + 0x30]
push eax
push dword [ebx + 0x144]
call fcn.0040aa20
mov edi, dword [ebx + 0x144]
add esp, 0x18
test edi, edi
je 0x40160b
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401284
sub ecx, edx
cmp ecx, 4
jb 0x401214
lea eax, [edi - 4]
mov edx, str..cpp
add eax, ecx
nop dword [eax]
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x4012c0
test cl, cl
je 0x4012bc
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x4012c0
add eax, 2
add edx, 2
test cl, cl
jne 0x4012a0
xor eax, eax
jmp 0x4012c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401214
push eax
push edi
call fcn.004142a2
add esp, 4
push eax
push ebp
call fcn.00402770
push edx
push eax
push 0x4256fe
call fcn.00402620
mov esi, edi
mov dword [esp + 0x28], eax
add esp, 0x18
lea eax, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x4012f6
sub esi, eax
je 0x401311
cmp byte [edi + esi - 1], 0x2e
je 0x4013e8
sub esi, 1
jne 0x401301
mov ebp, edi
push 0
push str..obj
push ebp
call fcn.00402770
push edx
push eax
push 0x4256fe
call fcn.00402620
add esp, 0x18
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebp, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x40135e
mov ecx, dword [0x430284]
cmp dword [ecx], 0
jne 0x40135e
push esi
push ebp
call fcn.00402f10
add esp, 8
test eax, eax
je 0x401210
mov eax, dword [0x430280]
push 0
mov dword [0x430294], 1
push 0x425c78
cmp dword [eax], 0
push ebp
je 0x401405
push 0x425c7c
push str._MTd
push 0x425c88
push 0x425c8c
push str._Ivendor_GLFW_include
push str._Ivendor_imgui_backends_standalone
push str._Ivendor_imgui_backends
push str._Ivendor_imgui
push str._Ivendor
push str._Iinclude
push str._std:clatest
push str._DIMGUI_USE_STB_SPRINTF
push str._DIMGUI_DEFINE_MATH_OPERATORS
push str._DUNICODE
push str._DWIN32_LEAN_AND_MEAN
push str._nologo
push str._EHsc
push 0x425d88
call fcn.00402770
mov esi, eax
mov dword [esp + 0x64], esi
jmp 0x40146a
push esi
call fcn.0040ab6a
push esi
mov ebp, eax
push edi
push ebp
call fcn.00408510
add esp, 0x10
mov byte [esi + ebp - 1], 0
jmp 0x401313
push 0x425d8c
push 0x425d90
push 0x425d94
push str._Ivendor_GLFW_include
push str._Ivendor_imgui_backends_standalone
push str._Ivendor_imgui_backends
push str._Ivendor_imgui
push str._Ivendor
push str._Iinclude
push str._DNDEBUG
push str._std:clatest
push str._DIMGUI_USE_STB_SPRINTF
push str._DIMGUI_DEFINE_MATH_OPERATORS
push str._DUNICODE
push str._DWIN32_LEAN_AND_MEAN
push str._nologo
push str._EHsc
push 0x425d88
call fcn.00402770
mov esi, eax
mov dword [esp + 0x64], eax
add esp, 0x54
mov ebp, edx
cmp byte [0x430298], 0
je 0x4014a6
lea eax, [ebp*4 + 4]
push eax
call fcn.0040ab6a
mov ecx, ebp
mov esi, eax
shl ecx, 2
push ecx
push dword [esp + 0x18]
push esi
call fcn.00408510
add esp, 0x10
mov dword [esi + ebp*4], 0x430298
mov dword [esp + 0x10], esi
inc ebp
mov eax, dword [0x430280]
cmp dword [eax], 0
je 0x4014e2
lea eax, [ebp*4 + 4]
push eax
call fcn.0040ab6a
lea esi, [ebp*4]
mov edi, eax
push esi
push dword [esp + 0x18]
push edi
call fcn.00408510
mov dword [esi + edi], str._DFR_DEBUG
add esp, 0x10
mov esi, edi
inc ebp
mov dword [esp + 0x10], esi
mov eax, dword [0x430290]
cmp dword [eax], 0
je 0x40151a
lea eax, [ebp*4 + 4]
push eax
call fcn.0040ab6a
lea esi, [ebp*4]
mov edi, eax
push esi
push dword [esp + 0x18]
push edi
call fcn.00408510
add esp, 0x10
mov dword [esi + edi], str._DFR_LOG_TO_CONSOLE
mov esi, edi
inc ebp
push ebp
push esi
push 0x425788
call fcn.00402620
push eax
push str.CMD:__s
call fcn.004010a0
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
xorps xmm0, xmm0
add esp, 0x14
movlpd qword [esp + 0x2c], xmm0
movlpd qword [esp + 0x34], xmm0
movlpd qword [esp + 0x3c], xmm0
movlpd qword [esp + 0x44], xmm0
push 0xfffffffffffffff4
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
mov dword [esp + 0x60], 0
mov dword [esp + 0x2c], 0x44
call edi
push 0xfffffffffffffff5
mov dword [esp + 0x6c], eax
call edi
push 0xfffffffffffffff6
mov dword [esp + 0x68], eax
call edi
or dword [esp + 0x54], 0x100
xorps xmm0, xmm0
mov dword [esp + 0x60], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push ebp
push esi
push 0x425788
movups xmmword [esp + 0x44], xmm0
call fcn.00402620
add esp, 0xc
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x401677
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx]
mov dword [ebx + ecx*4], eax
inc dword [edx]
mov ebx, dword [esp + 0x14]
jmp 0x401210
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x40160b
call fcn.0040a8bd
mov dword [eax], 0x28
call fcn.0040a8bd
cmp dword [eax], 0
jg 0x401692
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
jne 0x401638
call fcn.0040a8bd
pop edi
pop esi
pop ebp
mov dword [eax], 0x28
pop ebx
add esp, 0x5c
ret
mov eax, dword [ebx + 0x144]
test eax, eax
je 0x40164b
push eax
call fcn.0040ab4f
add esp, 4
push ebx
call fcn.0040ab4f
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
call fcn.0040a8bd
push dword [eax]
call fcn.0040aa0a
add esp, 4
push eax
push ebp
push str.could_not_open_directory__s:__s
call fcn.004010f0
call fcn.00401050
push eax
push ebp
push esi
call fcn.00402600
add esp, 8
push eax
push str.Could_not_create_child_process__s:__s_n
call fcn.004010f0
call fcn.0040a8bd
push dword [eax]
call fcn.0040aa0a
add esp, 4
push eax
push ebp
push str.could_not_read_directory__s:__s
call fcn.004010f0
int3