Function at 0x409870
Capabilities:
Create thread
Set current directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp], 0x40a2a0
call dword [sym.imp.Qt5Core.dll_qInstallMessageHandler_void____QtMsgType__QMessageLogContext_const__QString_const__]
mov dword [esp], 2
call dword [sym.imp.libmemuqt.dll_win32_SetProcessDpiAware_PROCESS_DPI_AWARENESS_]
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.0045d7a0
lea ecx, [ebp - 0x34]
sub esp, 8
call fcn.0045c990
test al, al
je 0x4098dc
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 0x4099d2
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], 0x5191d5
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 0x40a040
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 0x40a094
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], 0x5191ee
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], 0x5191f0
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 0x409a4b
lock add dword [eax], 1
setne dl
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
test edx, edx
jne 0x409f80
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 0x409f60
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 0x409f40
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 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 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 0x409fc0
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], 0x5191ff
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 0x409fa0
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], 0x519200
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 0x409fe0
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 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_]
call dword [sym.imp.libmemuqt.dll_getGLVersion__]
call fcn.00446880
mov eax, dword [sym.imp.libmemuqt.dll_StatusControlBlock::_instance]
mov ecx, dword [eax]
test ecx, ecx
je 0x40a110
call dword [method.StatusControlBlock.init__]
lea ecx, [ebp - 0x34]
call fcn.0045c9a0
test al, al
je 0x409c78
mov dword [esp], 0
call dword [method.QCoreApplication.setQuitLockEnabled_bool_]
mov byte [0x517008], 0
mov dword [esp], 0x3e8
call sub.libstdc_6.dll_operator_new_unsigned_int_
mov dword [esp], 0
mov ecx, eax
mov ebx, eax
call fcn.00416630
sub esp, 4
mov dword [0x554044], 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.004891b0
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 0x409d1d
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 0x409d1d
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.00467720
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4091d0
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 0x40a0b0
mov eax, dword [ebp - 0x6c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov ecx, ebx
call fcn.0043e400
mov ecx, dword [ebx + 0xa8]
mov dword [esp], 7
call dword [method.QThread.start_QThread::Priority_]
sub esp, 4
cmp byte [0x517008], 0
jne 0x40a080
mov byte [ebx + 0xa5], 1
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x54]
mov dword [esp], eax
call fcn.004fa510
mov eax, dword [ebp - 0x54]
sub esp, 4
mov edx, dword [eax + 8]
cmp dword [eax + 0xc], edx
je 0x409e68
mov dword [esp + 4], 2
mov dword [esp], 0x519234
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.004d4e30
mov eax, dword [ebp - 0x48]
sub esp, 8
mov edx, dword [eax]
test edx, edx
jne 0x40a020
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 0x40a060
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 0x40a0c2
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.00467740
lea ecx, [ebp - 0x54]
call fcn.004fa5d0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x34], 0x5324c8
call fcn.004fa5d0
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
test ecx, ecx
jne 0x40a000
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 0x409c38
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409c38
mov eax, dword [ebp - 0x48]
jmp 0x409c1f
cmp edx, 0xffffffff
je 0x409b03
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409b03
mov eax, dword [ebp - 0x60]
jmp 0x409aea
cmp edx, 0xffffffff
je 0x409abd
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409abd
mov eax, dword [ebp - 0x48]
jmp 0x409aa4
cmp edx, 0xffffffff
je 0x409a97
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409a97
mov eax, dword [ebp - 0x4c]
jmp 0x409a7e
cmp edx, 0xffffffff
je 0x409a71
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409a71
mov eax, dword [ebp - 0x50]
jmp 0x409a58
cmp edx, 0xffffffff
je 0x409b9d
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409b9d
mov eax, dword [ebp - 0x48]
jmp 0x409b84
cmp edx, 0xffffffff
je 0x409b53
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409b53
mov eax, dword [ebp - 0x48]
jmp 0x409b3a
cmp edx, 0xffffffff
je 0x409c12
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409c12
mov eax, dword [ebp - 0x5c]
jmp 0x409bf9
cmp ecx, 0xffffffff
je 0x409ee7
lock sub dword [edx], 1
setne al
test al, al
jne 0x409ee7
mov edx, dword [ebp - 0x20]
jmp 0x409ece
cmp edx, 0xffffffff
je 0x409e42
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409e42
mov eax, dword [ebp - 0x48]
jmp 0x409e29
cmp edx, 0xffffffff
je 0x4099af
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x4099af
mov eax, dword [ebp - 0x4c]
jmp 0x409996
cmp edx, 0xffffffff
je 0x409e68
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x409e68
mov eax, dword [ebp - 0x4c]
jmp 0x409e4f
mov ecx, ebx
call dword [method.QWidget.show__]
mov byte [ebx + 0xa5], 0
jmp 0x409db4
mov dword [esp], 0x20
call dword [method.QTextStream.operator___char_]
sub esp, 4
jmp 0x4099bc
mov dword [esp], 0xffffffff
call dword [sym.imp.libmemuqt.dll_exitProcess_int_]
jmp 0x409d74
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 0x409e81
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 0x409c52