Function at 0x4012c0
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x620
mov eax, dword [0x4ca00c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x61c]
mov dword [ebp - 0x5fc], esi
mov dword [ebp - 0x61c], 0
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x614], 0
call fcn.00405c90
test eax, eax
je 0x401338
push str.CaptureScreen
push 1
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
mov ebx, eax
mov dword [ebp - 0x610], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40138f
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov esi, dword [ebp - 0x61c]
test esi, esi
je 0x40137b
push dword [ebp - 0x610]
mov edx, dword [ebp - 0x618]
push ecx
mov ecx, esi
call fcn.004027d0
mov ecx, dword [ebp - 0x614]
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 8
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push esi
call fcn.004028f0
mov ecx, dword [ebp - 4]
mov eax, ebx
pop esi
xor ecx, ebp
pop ebx
call fcn.004388ef
mov esp, ebp
pop ebp
ret 0x10
push edi
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
push 0xe74
call fcn.00438900
mov ecx, eax
call fcn.004022e0
push 0x208
mov edi, eax
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0043b770
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x208
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push 0x5c
push eax
call fcn.0043af50
movups xmm0, xmmword [str...CaptureScreen]
add esp, 8
movups xmmword [eax + 2], xmm0
movups xmm0, xmmword [0x4b4a8c]
movups xmmword [eax + 0x12], xmm0
mov cx, word [0x4b4a9c]
mov word [eax + 0x22], cx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ecx
lea eax, [ebp - 0x608]
mov dword [ebp - 0x60c], 0
push eax
push str.render_gdi.dll
lea ecx, [edi + 0x210]
mov dword [ebp - 0x608], 0
call fcn.00402210
push ecx
lea edx, [edi + 0xe70]
lea ecx, [ebp - 0x600]
call fcn.00402110
push ecx
lea eax, [ebp - 0x60c]
mov ecx, edi
push eax
push dword [ebp - 0x600]
call fcn.00402210
lea ecx, [ebp - 0x600]
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
mov ecx, dword [ebp - 0x608]
push dword [ebp - 0x60c]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0xb4
call fcn.00438900
add esp, 4
mov ebx, eax
mov ecx, ebx
mov dword [ebp - 0x620], ebx
push str.SOUIHOST
push esi
push dword [ebp - 0x608]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SApplication::constructor_struct_SOUI::IRenderFactory___struct_HINSTANCE_____wchar_t_const__]
push str.soui_sys_resource.dll
mov dword [ebx], vtable.SOUI::SApplication.1.0
mov dword [ebx + 4], vtable.SOUI::SApplication.0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov eax, dword [sym.imp.soui.dll_int___cdecl_SOUI::CreateResProvider_enum_SOUI::BUILTIN_RESTYPE__struct_IObjRef___]
test esi, esi
je 0x40151f
lea ecx, [ebp - 0x600]
mov dword [ebp - 0x600], 0
push ecx
push 0
call eax
mov ecx, dword [ebp - 0x600]
add esp, 8
mov eax, dword [ecx]
push 0
push esi
call dword [eax + 0xc]
push dword [ebp - 0x600]
mov ecx, ebx
call dword [sym.imp.soui.dll_public:_unsigned_int___thiscall_SOUI::SApplication::LoadSystemNamedResource_struct_SOUI::IResProvider__]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0x600]
test ecx, ecx
je 0x40151a
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [sym.imp.soui.dll_int___cdecl_SOUI::CreateResProvider_enum_SOUI::BUILTIN_RESTYPE__struct_IObjRef___]
lea ecx, [ebp - 0x604]
mov dword [ebp - 0x604], 0
push ecx
push 0
call eax
mov ecx, dword [ebp - 0x604]
add esp, 8
mov eax, dword [ecx]
push 0
push dword [ebp - 0x5fc]
call dword [eax + 0xc]
push 1
push 0x10
push 0x4b4c88
mov ecx, ebx
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SApplication::InitXmlNamedID_struct_SOUI::TNAMEDVALUE_int__const___int__int_]
push str.uidef:xml_init
push dword [ebp - 0x604]
lea ecx, [ebx + 0x10]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SResProviderMgr::AddResProvider_struct_SOUI::IResProvider___wchar_t_const__]
mov esi, dword [sym.imp.soui.dll_public:_bool___thiscall_SOUI::SObjectFactoryMgr::RegisterFactory_class_SOUI::SObjectFactory___bool_]
lea eax, [ebp - 0x5fc]
push 0
push eax
lea ecx, [ebx + 4]
mov dword [ebp - method.SOUI::TplSObjectFactory_class_SDesktop_.virtual_0], vtable.SOUI::TplSObjectFactory_class_SDesktop_.0
call esi
push 0
lea eax, [ebp - 0x5fc]
mov dword [ebp - method.SOUI::TplSObjectFactory_class_SCaptureSection_.virtual_0], vtable.SOUI::TplSObjectFactory_class_SCaptureSection_.0
push eax
lea ecx, [ebx + 4]
call esi
push 0
lea eax, [ebp - 0x5fc]
mov dword [ebp - method.SOUI::TplSObjectFactory_class_SMagnifyWnd_.virtual_0], vtable.SOUI::TplSObjectFactory_class_SMagnifyWnd_.0
push eax
lea ecx, [ebx + 4]
call esi
push 0
lea eax, [ebp - 0x5fc]
mov dword [ebp - method.SOUI::TplSObjectFactory_class_SCustomComboView_.virtual_0], vtable.SOUI::TplSObjectFactory_class_SCustomComboView_.0
push eax
lea ecx, [ebx + 4]
call esi
push str.LAYOUT:XML_MAINWND
lea ecx, [ebp - 0x5f8]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SHostWnd::constructor_wchar_t_const__]
lea ecx, [ebp - 0x5f8]
mov dword [ebp - method.CMainDlg.4.virtual_0], vtable.CMainDlg.4.0
mov dword [ebp - method.CMainDlg.3.virtual_0], vtable.CMainDlg.3.0
mov dword [ebp - method.CMainDlg.2.virtual_0], vtable.CMainDlg.2.0
mov dword [ebp - method.CMainDlg.1.virtual_0], vtable.CMainDlg.1.0
mov dword [ebp - method.CMainDlg.virtual_0], vtable.CMainDlg.0
mov dword [ebp - 0x214], 0
call fcn.0040a850
push dword [ebp - 0x39c]
mov ecx, ebx
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SApplication::Run_struct_HWND____]
lea ecx, [ebp - 0x5f8]
mov dword [ebp - method.CMainDlg.4.virtual_0], vtable.CMainDlg.4.0
mov ebx, eax
mov dword [ebp - method.CMainDlg.3.virtual_0], vtable.CMainDlg.3.0
mov dword [ebp - method.CMainDlg.2.virtual_0], vtable.CMainDlg.2.0
mov dword [ebp - method.CMainDlg.1.virtual_0], vtable.CMainDlg.1.0
mov dword [ebp - method.CMainDlg.virtual_0], vtable.CMainDlg.0
call dword [sym.imp.soui.dll_public_virtual:_void___thiscall_SOUI::SHostWnd::destructor_void_]
mov ecx, dword [ebp - 0x620]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x604]
test ecx, ecx
je 0x401696
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x608]
test ecx, ecx
je 0x4016a5
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x60c]
test ecx, ecx
je 0x4016b4
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
je 0x4016cd
mov ecx, edi
call fcn.00401740
push 0xe74
push edi
call fcn.00438933
add esp, 8
call dword [sym.imp.ole32.dll_OleUninitialize]
push dword [ebp - 0x610]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
jmp 0x40133a