Function at 0x409740
Capabilities:
Create thread
Set current directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8c
call dword [sym.imp.libmemuqt.dll_win32_SetProcessDpiAware__]
mov dword [esp + 4], 1
mov dword [esp], 0xd
call dword [method.QCoreApplication.setAttribute_Qt::ApplicationAttribute__bool_]
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x34]
mov dword [esp + 4], eax
lea eax, [ebp + 8]
mov dword [esp], eax
call fcn.0045a620
lea ecx, [ebp - 0x34]
sub esp, 8
call fcn.00459810
test al, al
je 0x409798
mov dword [esp], 0
call dword [sym.imp.libmemuqt.dll_exitProcess_int_]
mov dword [esp], 8
call sub.libstdc_6.dll_operator_new_unsigned_int_
mov ebx, eax
mov dword [esp], 0
mov ecx, eax
call dword [method.QProxyStyle.QProxyStyle_QStyle_]
mov eax, dword [sym.imp.libmemuqt.dll_vtable_for_CustomStyle]
sub esp, 4
add eax, 8
mov dword [ebx], eax
mov dword [esp], ebx
call dword [method.QApplication.setStyle_QStyle_]
mov dword [esp], 3
call dword [sym.imp.libcurl.dll_curl_global_init]
test eax, eax
je 0x40988e
lea esi, [ebp - 0x48]
mov dword [ebp - 0x48], 2
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x38], 0x5141d1
mov dword [esp], esi
call dword [method.QMessageLogger.debug___const]
lea eax, [ebp - 0x4c]
sub esp, 4
mov dword [esp + 8], 0x10
mov dword [esp + 4], str.curl_init_failed
mov edi, eax
mov dword [ebp - 0x70], eax
mov dword [esp], eax
call dword [method.QString.fromUtf8_helper_char_const__int_]
mov dword [esp], edi
mov ecx, dword [ebp - 0x64]
call dword [method.QTextStream.operator___QString_const_]
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x409f00
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov ecx, dword [ebp - 0x64]
cmp byte [ecx + 0x14], 0
jne 0x409f54
lea ecx, [ebp - 0x64]
call dword [method.QDebug.QDebug__]
mov dword [esp], 0xffffffff
call dword [sym.imp.libmemuqt.dll_exitProcess_int_]
call dword [sym.imp.libmemuqt.dll_InitMinDump__]
mov dword [esp + 4], 1
mov dword [esp], 0x5141ea
mov edi, dword [method.QString.fromAscii_helper_char_const__int_]
call edi
mov dword [ebp - 0x48], eax
mov dword [esp + 4], 1
mov dword [esp], 0x5141ec
call edi
lea ebx, [ebp - 0x50]
mov dword [ebp - 0x4c], eax
mov dword [esp], ebx
call dword [method.QCoreApplication.applicationDirPath__]
lea eax, [ebp - 0x4c]
lea esi, [ebp - 0x48]
mov dword [esp + 8], 1
mov ecx, ebx
mov dword [esp + 4], esi
mov dword [ebp - 0x70], eax
mov dword [esp], eax
call dword [method.QString.replace_QString_const__QString_const__Qt::CaseSensitivity_]
mov eax, dword [eax]
sub esp, 0xc
mov ebx, dword [eax]
mov dword [ebp - 0x60], eax
lea edx, [ebx + 1]
cmp edx, 1
jbe 0x409907
lock add dword [eax], 1
setne dl
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
test edx, edx
jne 0x409e40
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
test edx, edx
jne 0x409e20
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x48]
mov edx, dword [eax]
test edx, edx
jne 0x409e00
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
lea ebx, [ebp - 0x60]
mov ecx, ebx
call dword [method.QString.utf16___const]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
sub esp, 4
mov dword [esp], ebx
call dword [method.QCoreApplication.addLibraryPath_QString_const_]
mov eax, dword [ebp - 0x60]
mov edx, dword [eax]
test edx, edx
jne 0x409de0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov dword [esp + 4], 0xc
mov dword [esp], str.consoleskins
call edi
mov dword [ebp - 0x48], eax
mov ebx, dword [method.SkinManager.instance__]
call ebx
mov dword [esp], esi
mov ecx, eax
call dword [method.SkinManager.refreshSkinList_QString_]
mov eax, dword [ebp - 0x48]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x409e80
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov dword [esp + 4], 0
mov dword [esp], 0x5141fb
call edi
mov dword [ebp - 0x48], eax
call ebx
mov dword [esp], esi
mov ecx, eax
call dword [method.SkinManager.loadStyle_QString_]
mov eax, dword [ebp - 0x48]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x409e60
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
call dword [sym.imp.libmemuqt.dll_copyMEmuDef__]
mov dword [esp + 4], 0xe
mov dword [esp], 0x5141fc
call edi
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x5c]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.libmemuqt.dll_adjusteResourcePath_QString_]
lea ebx, [ebp - 0x58]
lea eax, [ebp - 0x5c]
mov ecx, ebx
mov dword [esp], eax
call dword [method.QIcon.QIcon_QString_const_]
sub esp, 4
mov dword [esp], ebx
call dword [method.QApplication.setWindowIcon_QIcon_const_]
mov ecx, ebx
call dword [method.QIcon.QIcon__]
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax]
test edx, edx
jne 0x409ea0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x48]
mov edx, dword [eax]
test edx, edx
jne 0x409dc0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
call dword [sym.imp.libmemuqt.dll_getGLVersion__]
call fcn.0044ad60
mov eax, dword [sym.imp.libmemuqt.dll_StatusControlBlock::_instance]
mov ecx, dword [eax]
test ecx, ecx
je 0x409fd0
call dword [method.StatusControlBlock.init__]
lea ecx, [ebp - 0x34]
call fcn.00459820
test al, al
je 0x409b34
mov dword [esp], 0
call dword [method.QCoreApplication.setQuitLockEnabled_bool_]
mov byte [0x512004], 0
mov dword [esp], 0x3d8
call sub.libstdc_6.dll_operator_new_unsigned_int_
mov dword [esp], 0
mov ecx, eax
mov ebx, eax
call fcn.00415a90
sub esp, 4
mov dword [0x54e044], ebx
mov dword [ebp - 0x2c], ebx
mov dword [esp], ebx
lea ecx, [ebp - 0x34]
call dword [method.QObject.installEventFilter_QObject_]
sub esp, 4
mov dword [esp], 8
call sub.libstdc_6.dll_operator_new_unsigned_int_
mov ecx, eax
mov dword [ebp - 0x6c], eax
call fcn.00485130
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x34]
mov dword [esp], eax
call dword [method.QCoreApplication.installNativeEventFilter_QAbstractNativeEventFilter_]
sub esp, 4
mov dword [esp], str.user32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
sub esp, 4
test eax, eax
mov dword [ebp - 0x6c], eax
je 0x409bd9
mov eax, dword [ebp - 0x6c]
mov dword [esp + 4], str.ChangeWindowMessageFilter
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
test eax, eax
je 0x409bd9
mov dword [esp + 4], 1
mov dword [esp], 0x4a
call eax
sub esp, 8
mov eax, dword [ebp - 0x6c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
sub esp, 4
call fcn.00463840
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4090a0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
sub esp, 0x18
test eax, eax
mov dword [ebp - 0x6c], eax
je 0x409f70
mov eax, dword [ebp - 0x6c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov ecx, ebx
call fcn.0043bbf0
mov ecx, dword [ebx + 0xa8]
mov dword [esp], 7
call dword [method.QThread.start_QThread::Priority_]
sub esp, 4
cmp byte [0x512004], 0
jne 0x409f40
mov byte [ebx + 0xa4], 1
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x54]
mov dword [esp], eax
call fcn.004f5440
mov eax, dword [ebp - 0x54]
sub esp, 4
mov edx, dword [eax + 8]
cmp dword [eax + 0xc], edx
je 0x409d24
mov dword [esp + 4], 2
mov dword [esp], 0x514230
call edi
mov edx, dword [eax + 4]
mov dword [ebp - 0x4c], eax
mov dword [esp + 0xc], edx
add eax, dword [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 8], eax
lea eax, [ebp - 0x54]
mov dword [esp + 4], eax
call dword [method.QtPrivate.QStringList_join_QStringList_const__QChar_const__int_]
lea ecx, [ebp - 0x34]
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.004cfe50
mov eax, dword [ebp - 0x48]
sub esp, 8
mov edx, dword [eax]
test edx, edx
jne 0x409ee0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
test edx, edx
jne 0x409f20
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
mov ecx, ebx
call dword [method.QWidget.winId___const]
mov esi, eax
mov eax, dword [sym.imp.libmemuqt.dll_StatusControlBlock::_instance]
mov ecx, dword [eax]
test ecx, ecx
je 0x409f82
mov dword [esp], esi
call dword [method.StatusControlBlock.updateConsoleHwnd_HWND___]
sub esp, 4
call dword [method.QApplication.exec__]
mov esi, eax
mov eax, dword [ebx + 0xa8]
mov byte [eax + 8], 0
call dword [sym.imp.libcurl.dll_curl_global_cleanup]
call fcn.00463860
lea ecx, [ebp - 0x54]
call fcn.004f5500
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x34], 0x52bc88
call fcn.004f5500
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
test ecx, ecx
jne 0x409ec0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], edx
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
lea ecx, [ebp - 0x34]
call dword [method.QApplication.QApplication__]
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
cmp edx, 0xffffffff
je 0x409af4
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409af4
mov eax, dword [ebp - 0x48]
jmp 0x409adb
cmp edx, 0xffffffff
je 0x4099bf
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x4099bf
mov eax, dword [ebp - 0x60]
jmp 0x4099a6
cmp edx, 0xffffffff
je 0x409979
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409979
mov eax, dword [ebp - 0x48]
jmp 0x409960
cmp edx, 0xffffffff
je 0x409953
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409953
mov eax, dword [ebp - 0x4c]
jmp 0x40993a
cmp edx, 0xffffffff
je 0x40992d
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x40992d
mov eax, dword [ebp - 0x50]
jmp 0x409914
cmp edx, 0xffffffff
je 0x409a59
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409a59
mov eax, dword [ebp - 0x48]
jmp 0x409a40
cmp edx, 0xffffffff
je 0x409a0f
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409a0f
mov eax, dword [ebp - 0x48]
jmp 0x4099f6
cmp edx, 0xffffffff
je 0x409ace
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409ace
mov eax, dword [ebp - 0x5c]
jmp 0x409ab5
cmp ecx, 0xffffffff
je 0x409da3
lock sub dword [edx], 1
setne al
test al, al
jne 0x409da3
mov edx, dword [ebp - 0x20]
jmp 0x409d8a
cmp edx, 0xffffffff
je 0x409cfe
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409cfe
mov eax, dword [ebp - 0x48]
jmp 0x409ce5
cmp edx, 0xffffffff
je 0x40986b
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x40986b
mov eax, dword [ebp - 0x4c]
jmp 0x409852
cmp edx, 0xffffffff
je 0x409d24
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409d24
mov eax, dword [ebp - 0x4c]
jmp 0x409d0b
mov ecx, ebx
call dword [method.QWidget.show__]
mov byte [ebx + 0xa4], 0
jmp 0x409c70
mov dword [esp], 0x20
call dword [method.QTextStream.operator___char_]
sub esp, 4
jmp 0x409878
mov dword [esp], 0xffffffff
call dword [sym.imp.libmemuqt.dll_exitProcess_int_]
jmp 0x409c30
mov dword [esp], 0x10
call sub.libstdc_6.dll_operator_new_unsigned_int_
mov edi, eax
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [sym.imp.libmemuqt.dll_vtable_for_StatusControlBlock]
lea ecx, [edi + 8]
add eax, 8
mov dword [edi], eax
mov dword [esp], 0
call dword [method.QSharedMemory.QSharedMemory_QObject_]
mov eax, dword [sym.imp.libmemuqt.dll_StatusControlBlock::_instance]
sub esp, 4
mov ecx, edi
mov dword [eax], edi
jmp 0x409d3d
mov dword [esp], 0x10
call sub.libstdc_6.dll_operator_new_unsigned_int_
mov ebx, eax
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [sym.imp.libmemuqt.dll_vtable_for_StatusControlBlock]
lea ecx, [ebx + 8]
add eax, 8
mov dword [ebx], eax
mov dword [esp], 0
call dword [method.QSharedMemory.QSharedMemory_QObject_]
mov eax, dword [sym.imp.libmemuqt.dll_StatusControlBlock::_instance]
sub esp, 4
mov ecx, ebx
mov dword [eax], ebx
jmp 0x409b0e