Function at 0x4078e0
Capabilities:
Accept command line arguments
Create thread
Get graphical window text
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43dcbf
mov eax, dword fs:[0]
push eax
sub esp, 0x1f8
mov eax, dword [0x457078]
xor eax, esp
mov dword [esp + 0x1f0], eax
push ebx
push esi
push edi
mov eax, dword [0x457078]
xor eax, esp
push eax
lea eax, [esp + 0x208]
mov dword fs:[0], eax
mov dword [esp + 0x6c], edx
mov esi, ecx
mov dword [esp + 0x64], esi
mov eax, dword [ebp + 0x14]
lea ecx, [esp + 0x54]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x68], eax
call fcn.0040ab80
mov dword [esp + 0x210], 0
cmp dword [0x45b878], 0
je 0x407a2f
mov eax, dword [0x45b82c]
test eax, eax
jne 0x40796b
lea ecx, [esp + 0x14]
call fcn.0040a9e0
mov dword [esp + 0x14], eax
push ebx
push str.LaunchQBWAsDLL
push ecx
mov ecx, esp
mov byte [esp + 0x21c], 1
push str.__s____s_
call fcn.00409a40
lea eax, [esp + 0x20]
push eax
call fcn.00409b10
add esp, 0x10
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 2
mov ecx, esp
mov dword [esp + 0x4c], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x520
push ecx
mov byte [esp + 0x228], 3
mov ecx, esp
mov dword [esp + 0x50], esp
push str.srcQbwExe.cpp
call fcn.00409a40
mov eax, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x40], esp
mov ecx, esp
test eax, eax
je 0x4079fc
test byte [eax - 0xe], 8
jne 0x4079fc
inc word [eax - 0x10]
mov dword [ecx], eax
push ecx
mov byte [esp + 0x230], 5
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 1
mov ecx, eax
call fcn.0040e640
lea ecx, [esp + 0x14]
mov byte [esp + 0x210], 0
call fcn.0040aa60
push 0x1b
push ecx
lea ecx, [esp + 0x5c]
call fcn.0040ac90
push ecx
call fcn.0040acb0
call fcn.0040ad00
mov ecx, dword [0x45b8a8]
mov ebx, eax
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [esp + 0x3c], ebx
mov cl, byte [ecx + 0x1d]
test cl, cl
mov ecx, esi
sete al
push eax
push ebx
mov dword [esp + 0x48], eax
call fcn.00407150
xor eax, eax
add esp, 8
mov dword [esp + 0x50], eax
test ebx, ebx
jle 0x4080be
lea ecx, [ecx]
push eax
lea ecx, [esp + 0x58]
call fcn.0040ad20
mov ebx, eax
mov word [esp + 0xf4], 0
push 0x104
lea eax, [esp + 0xf8]
mov dword [esp + 0x28], ebx
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
cmp dword [0x45b878], 0
mov edi, eax
je 0x407bef
mov ecx, dword [0x45b82c]
test ecx, ecx
jne 0x407ad6
lea ecx, [esp + 0x14]
call fcn.0040a9e0
mov dword [esp + 0x14], eax
jmp 0x407ada
mov dword [esp + 0x14], ecx
lea eax, [esp + 0xf4]
mov byte [esp + 0x210], 6
push eax
push str.Found_QB_instance
push ecx
mov ecx, esp
push str.__s____s_
call fcn.00409a40
lea eax, [esp + 0x20]
push eax
call fcn.00409b10
add esp, 0x10
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 7
mov ecx, esp
mov dword [esp + 0x38], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x53e
push ecx
mov byte [esp + 0x228], 8
mov ecx, esp
mov dword [esp + 0x38], esp
push str.srcQbwExe.cpp
call fcn.00409a40
mov eax, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x38], esp
mov ecx, esp
test eax, eax
je 0x407b6e
test byte [eax - 0xe], 8
jne 0x407b6e
inc word [eax - 0x10]
mov dword [ecx], eax
mov byte [esp + 0x22c], 0xa
cmp dword [0x45b91c], 0
jne 0x407bcb
push 8
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x34], eax
mov byte [esp + 0x22c], 0xb
test eax, eax
je 0x407ba7
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x407ba9
xor esi, esi
mov byte [esp + 0x22c], 0xa
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x407bc5
test ecx, ecx
je 0x407bc5
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 6
mov ecx, dword [0x45b91c]
call fcn.0040e640
lea ecx, [esp + 0x14]
mov byte [esp + 0x210], 0
call fcn.0040aa60
cmp edi, 2
jle 0x4080ab
cmp byte [esp + edi + 0xf2], 0x40
jne 0x4080ab
cmp byte [esp + edi + 0xf3], 0x40
jne 0x4080ab
cmp dword [0x45b878], 0
je 0x407cfe
mov eax, dword [0x45b82c]
test eax, eax
jne 0x407c33
lea ecx, [esp + 0x14]
call fcn.0040a9e0
mov dword [esp + 0x14], eax
lea eax, [esp + 0xf4]
mov byte [esp + 0x210], 0xc
push eax
push str.Found_a_background_instance_of_QB
push ecx
mov ecx, esp
push str.__s____s_
call fcn.00409a40
lea eax, [esp + 0x20]
push eax
call fcn.00409b10
add esp, 0x10
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0xd
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x544
push ecx
mov byte [esp + 0x228], 0xe
mov ecx, esp
mov dword [esp + 0x38], esp
push str.srcQbwExe.cpp
call fcn.00409a40
mov eax, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x44], esp
mov ecx, esp
test eax, eax
je 0x407ccb
test byte [eax - 0xe], 8
jne 0x407ccb
inc word [eax - 0x10]
mov dword [ecx], eax
push ecx
mov byte [esp + 0x230], 0x10
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 0xc
mov ecx, eax
call fcn.0040e640
lea ecx, [esp + 0x14]
mov byte [esp + 0x210], 0
call fcn.0040aa60
push 0
push 0
push 0x4bd
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, 0x80
jg 0x408481
test al, 0x40
jg 0x4080ab
mov ecx, dword [0x45b8a8]
and eax, 0x3f
mov dword [esp + 0x38], eax
mov eax, dword [ecx]
test eax, eax
je 0x407d3e
test byte [eax - 0xe], 8
jne 0x407d3e
inc word [eax - 0x10]
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
mov byte [esp + 0x210], 0x15
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edx, dword [esp + 0x48]
mov edi, 1
mov byte [esp + 0x36], 0
mov ebx, eax
cmp edx, edi
jle 0x407de1
mov ecx, dword [ebx + edi*4]
cmp word [ecx], 0x2f
jne 0x407dc4
push ecx
lea ecx, [esp + 0x34]
call fcn.0040a840
mov byte [esp + 0x210], 0x16
mov esi, dword [esp + 0x30]
test esi, esi
je 0x407daf
push 0
push 0
push 0x448580
push esi
call fcn.00413cd0
add esp, 0x10
test eax, eax
je 0x407daf
sub eax, esi
je 0x407dcb
lea ecx, [esp + 0x30]
mov byte [esp + 0x210], 0x15
call fcn.0040aa60
mov edx, dword [esp + 0x48]
inc edi
cmp edi, edx
jl 0x407d72
jmp 0x407de1
lea ecx, [esp + 0x30]
mov byte [esp + 0x36], 1
mov byte [esp + 0x210], 0x15
call fcn.0040aa60
cmp byte [esp + 0x36], 0
mov byte [esp + 0x37], 0
je 0x407f0e
push dword [ebx + 4]
lea ecx, [esp + 0x50]
call fcn.0040a840
mov byte [esp + 0x210], 0x17
lea eax, [esp + 0x8c]
push dword [esp + 0x4c]
push eax
call dword [sym.imp.MSVCR120.dll_strcpy]
xor edi, edi
mov dword [esp + 0x90], 0xf
add esp, 8
mov dword [esp + 0x84], edi
cmp byte [esp + 0x8c], 0
mov byte [esp + 0x74], 0
jne 0x407e41
xor ecx, ecx
jmp 0x407e59
lea ecx, [esp + 0x8c]
lea edx, [ecx + 1]
jmp 0x407e50
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407e50
sub ecx, edx
push ecx
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x7c]
call fcn.004091c0
mov esi, dword [0x45b8b4]
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x30]
mov ecx, 0x45b8b4
push eax
call fcn.00408e00
cmp dword [eax], esi
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
setne bl
cmp dword [esp + 0x88], 0x10
jb 0x407ea3
push dword [esp + 0x74]
call esi
add esp, 4
test bl, bl
je 0x407ee4
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x78]
call fcn.00408ea0
lea eax, [esp + 0x74]
mov byte [esp + 0x210], 0x18
push eax
mov ecx, 0x45b8b4
call fcn.00408d50
cmp dword [esp + 0x88], 0x10
mov edi, dword [eax]
jb 0x407ee4
push dword [esp + 0x74]
call esi
add esp, 4
cmp dword [esp + 0x38], edi
lea ecx, [esp + 0x4c]
movzx ebx, byte [esp + 0x37]
mov eax, 1
cmove ebx, eax
mov byte [esp + 0x210], 0x15
call fcn.0040aa60
test bl, bl
jne 0x4083c0
cmp dword [0x45b878], 0
je 0x407fa0
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x1d
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x591
push ecx
mov byte [esp + 0x228], 0x1e
mov ecx, esp
mov dword [esp + 0x38], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x1f
mov ecx, esp
mov dword [esp + 0x44], esp
push str.Terminating_the_background_QB_to_open_a_new_one
call fcn.00409a40
push ecx
mov byte [esp + 0x230], 0x20
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 0x15
mov ecx, eax
call fcn.0040e640
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x44]
push eax
push edi
mov dword [esp + 0x4c], 0
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [esp + 0x44]
push 0
push 0x100001
call dword [sym.imp.KERNEL32.dll_OpenProcess]
push 0
push 0
push 0x4be
push edi
mov esi, eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x2710
push esi
call ebx
cmp eax, 0x102
jne 0x408001
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0x1388
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x45b878], 0
je 0x40809a
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x21
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5a7
push ecx
mov byte [esp + 0x228], 0x22
mov ecx, esp
mov dword [esp + 0x38], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x23
mov ecx, esp
mov dword [esp + 0x44], esp
push str.Terminated_background_QB
call fcn.00409a40
push ecx
mov byte [esp + 0x230], 0x24
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 0x15
mov ecx, eax
call fcn.0040e640
lea ecx, [esp + 0x14]
mov byte [esp + 0x210], 0
call fcn.0040aa60
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x3c]
jl 0x407a80
cmp dword [0x45b878], 0
je 0x40855f
push 0
push 0
push ecx
mov edi, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
mov dword [esp + 0x4c], edi
call dword [sym.imp.MSVCR120.dll_strlen]
mov ebx, eax
add esp, 4
mov eax, 1
lea esi, [ebx + 1]
test esi, esi
mov ecx, esi
cmove ecx, eax
lea eax, [esp + 0x3c]
add ecx, 0x15
and ecx, 0xfffffffe
push eax
mov dword [esp + 0x40], ecx
call fcn.004132c0
mov edx, eax
add esp, 4
test edx, edx
je 0x408140
mov dword [edx], 0x14010001
mov dword [edx + 4], 0
mov ecx, dword [esp + 0x3c]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0xfdfdfdfd
mov eax, dword [esp + 0x3c]
mov dword [edx + eax - 4], 0xfdfdfdfd
add edx, 0x10
push 0xffffffffffffffff
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
push esi
mov dword [edi], edx
mov edi, dword [sym.imp.MSVCR120.dll_strncpy_s]
push edx
call edi
mov ecx, dword [esp + 0x58]
lea eax, [esi - 1]
add esp, 0x10
cmp ebx, eax
cmovb eax, ebx
mov ecx, dword [ecx]
inc eax
test ecx, ecx
je 0x408176
test eax, eax
mov edx, 1
cmove eax, edx
mov dword [ecx - 0xc], eax
push ecx
mov byte [esp + 0x220], 0x25
mov dword [esp + 0x28], esp
mov dword [esp + 0x34], esp
push str.LaunchQBWAsDLL
call dword [sym.imp.MSVCR120.dll_strlen]
mov ebx, eax
add esp, 4
mov eax, 1
lea esi, [ebx + 1]
test esi, esi
mov ecx, esi
cmove ecx, eax
lea eax, [esp + 0x24]
add ecx, 0x15
and ecx, 0xfffffffe
push eax
mov dword [esp + 0x28], ecx
call fcn.004132c0
mov edx, eax
add esp, 4
test edx, edx
je 0x4081ed
mov dword [edx], 0x14010001
mov dword [edx + 4], 0
mov ecx, dword [esp + 0x24]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0xfdfdfdfd
mov eax, dword [esp + 0x24]
mov dword [edx + eax - 4], 0xfdfdfdfd
add edx, 0x10
mov eax, dword [esp + 0x34]
push 0xffffffffffffffff
push str.LaunchQBWAsDLL
push esi
push edx
mov dword [eax], edx
call edi
mov ecx, dword [esp + 0x44]
lea eax, [esi - 1]
add esp, 0x10
cmp ebx, eax
cmovb eax, ebx
mov ecx, dword [ecx]
inc eax
test ecx, ecx
je 0x408221
test eax, eax
mov edx, 1
cmove eax, edx
mov dword [ecx - 0xc], eax
push 0x5ad
push ecx
mov byte [esp + 0x228], 0x26
mov dword [esp + 0x34], esp
mov dword [esp + 0x3c], esp
push str.srcQbwExe.cpp
call dword [sym.imp.MSVCR120.dll_strlen]
mov ebx, eax
add esp, 4
mov eax, 1
lea esi, [ebx + 1]
test esi, esi
mov ecx, esi
cmove ecx, eax
lea eax, [esp + 0x48]
add ecx, 0x15
and ecx, 0xfffffffe
push eax
mov dword [esp + 0x4c], ecx
call fcn.004132c0
mov edx, eax
add esp, 4
test edx, edx
je 0x40829d
mov dword [edx], 0x14010001
mov dword [edx + 4], 0
mov ecx, dword [esp + 0x48]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0xfdfdfdfd
mov eax, dword [esp + 0x48]
mov dword [edx + eax - 4], 0xfdfdfdfd
add edx, 0x10
mov eax, dword [esp + 0x3c]
push 0xffffffffffffffff
push str.srcQbwExe.cpp
push esi
push edx
mov dword [eax], edx
call edi
mov ecx, dword [esp + 0x4c]
lea eax, [esi - 1]
add esp, 0x10
cmp ebx, eax
cmovb eax, ebx
mov ecx, dword [ecx]
inc eax
test ecx, ecx
je 0x4082d1
test eax, eax
mov edx, 1
cmove eax, edx
mov dword [ecx - 0xc], eax
push ecx
mov byte [esp + 0x22c], 0x27
mov dword [esp + 0x3c], esp
mov dword [esp + 0x40], esp
push str.LoadLibrary__QBW_DLL_NAME_
call dword [sym.imp.MSVCR120.dll_strlen]
mov ebx, eax
add esp, 4
mov eax, 1
lea esi, [ebx + 1]
test esi, esi
mov ecx, esi
cmove ecx, eax
lea eax, [esp + 0x30]
add ecx, 0x15
and ecx, 0xfffffffe
push eax
mov dword [esp + 0x34], ecx
call fcn.004132c0
mov edx, eax
add esp, 4
test edx, edx
je 0x408348
mov dword [edx], 0x14010001
mov dword [edx + 4], 0
mov ecx, dword [esp + 0x30]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0xfdfdfdfd
mov eax, dword [esp + 0x30]
mov dword [edx + eax - 4], 0xfdfdfdfd
add edx, 0x10
mov eax, dword [esp + 0x40]
push 0xffffffffffffffff
push str.LoadLibrary__QBW_DLL_NAME_
push esi
push edx
mov dword [eax], edx
call edi
mov ecx, dword [esp + 0x50]
lea eax, [esi - 1]
add esp, 0x10
cmp ebx, eax
cmovb eax, ebx
mov ecx, dword [ecx]
inc eax
test ecx, ecx
je 0x40837c
test eax, eax
mov edx, 1
cmove eax, edx
mov dword [ecx - 0xc], eax
mov byte [esp + 0x22c], 0x28
cmp dword [0x45b91c], 0
mov ebx, dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
jne 0x40854a
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x29
test eax, eax
je 0x408526
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x408528
cmp dword [0x45b878], 0
je 0x408452
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x19
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x58b
push ecx
mov byte [esp + 0x228], 0x1a
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x1b
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SameSku__SendCompanyFileForQBToOpen
call fcn.00409a40
push ecx
mov byte [esp + 0x230], 0x1c
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 0x15
mov ecx, eax
call fcn.0040e640
mov ecx, dword [esp + 0x24]
mov edx, 0x448f8e
call fcn.004027b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x210], 0
call fcn.0040aa60
lea ecx, [esp + 0x54]
call fcn.0040abc0
xor eax, eax
jmp 0x408ce8
cmp dword [0x45b878], 0
je 0x408513
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x11
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x54a
push ecx
mov byte [esp + 0x228], 0x12
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x13
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.return_and_exit_since_Company_file_is_open
call fcn.00409a40
push ecx
mov byte [esp + 0x230], 0x14
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 0
mov ecx, eax
call fcn.0040e640
lea ecx, [esp + 0x54]
call fcn.0040abc0
mov eax, 1
jmp 0x408ce8
xor esi, esi
mov byte [esp + 0x22c], 0x28
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x408544
test ecx, ecx
je 0x408544
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
jmp 0x408565
mov ebx, dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
push str.QBWMain.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
jne 0x408640
mov edi, 0x80029c4a
cmp dword [0x45b878], eax
je 0x4088ec
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x2a
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5b1
push ecx
mov byte [esp + 0x228], 0x2b
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x2c
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Can_not_LoadLibrary__QBW_DLL_NAME_
call fcn.00409a40
mov byte [esp + 0x22c], 0x2d
cmp dword [0x45b91c], 0
jne 0x4087fe
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x2e
test eax, eax
je 0x408631
mov ecx, eax
call fcn.0040e030
mov esi, eax
mov byte [esp + 0x22c], 0x2d
jmp 0x4087e4
xor esi, esi
mov byte [esp + 0x22c], 0x2d
jmp 0x4087e4
cmp dword [0x45b878], 0
je 0x40871c
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x2f
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5b4
push ecx
mov byte [esp + 0x228], 0x30
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x31
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.LoadLibrary__QBW_DLL_NAME____ok
call fcn.00409a40
mov byte [esp + 0x22c], 0x32
cmp dword [0x45b91c], 0
jne 0x408709
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x33
test eax, eax
je 0x4086e5
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x4086e7
xor esi, esi
mov byte [esp + 0x22c], 0x32
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x408703
test ecx, ecx
je 0x408703
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
push str.QBWMain
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
jne 0x408917
mov edi, 0x80004002
cmp dword [0x45b878], eax
je 0x4088ec
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x34
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5b8
push ecx
mov byte [esp + 0x228], 0x35
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x36
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Can_not_Load_method_QBWMain
call fcn.00409a40
mov byte [esp + 0x22c], 0x37
cmp dword [0x45b91c], 0
jne 0x4087fe
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x38
test eax, eax
je 0x4087da
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x4087dc
xor esi, esi
mov byte [esp + 0x22c], 0x37
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x4087f8
test ecx, ecx
je 0x4087f8
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
cmp dword [0x45b878], 0
je 0x4088ec
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x4c
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5d7
push ecx
mov byte [esp + 0x228], 0x4d
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x4e
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Can_not_LaunchQBWAsDLL
call fcn.00409a40
mov byte [esp + 0x22c], 0x4f
cmp dword [0x45b91c], 0
jne 0x4088d9
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x50
test eax, eax
je 0x4088b5
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x4088b7
xor esi, esi
mov byte [esp + 0x22c], 0x4f
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x4088d3
test ecx, ecx
je 0x4088d3
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
mov eax, dword [0x45b8a8]
mov edx, edi
push ecx
mov ecx, dword [esp + 0x68]
add eax, 8
push eax
call fcn.0040bff0
add esp, 8
lea ecx, [esp + 0x54]
call fcn.0040abc0
mov eax, 1
jmp 0x408ce8
mov edx, dword [0x45b878]
test edx, edx
je 0x4089fa
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x39
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5bb
push ecx
mov byte [esp + 0x228], 0x3a
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x3b
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.GetProcAddress_QBWMain___ok
call fcn.00409a40
mov byte [esp + 0x22c], 0x3c
cmp dword [0x45b91c], 0
jne 0x4089e1
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x3d
test eax, eax
je 0x4089bd
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x4089bf
xor esi, esi
mov byte [esp + 0x22c], 0x3c
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x4089db
test ecx, ecx
je 0x4089db
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
mov edx, dword [0x45b878]
mov eax, dword [0x45b8a8]
mov cl, byte [eax + 0x1c]
test cl, cl
jne 0x408b0c
mov al, byte [eax + 0x24]
test al, al
jne 0x408b0c
cmp dword [esp + 0x40], 0
je 0x408b0c
cmp dword [ebp + 0x10], 0
jne 0x408b0c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [esp + 0x68]
mov dword [0x45b8ac], eax
mov eax, dword [0x45b8b0]
cmp eax, dword [esi]
je 0x408a63
mov ecx, 0x45b8b0
call fcn.0040aa60
mov eax, dword [esi]
test eax, eax
je 0x408a5c
test byte [eax - 0xe], 8
jne 0x408a5c
inc word [eax - 0x10]
mov eax, dword [esi]
mov dword [0x45b8b0], eax
cmp dword [0x45b878], 0
je 0x408af5
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x3e
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5ca
push ecx
mov byte [esp + 0x228], 0x3f
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x40
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.DoLoadingQBDialog_in_another_thread
call fcn.00409a40
push ecx
mov byte [esp + 0x230], 0x41
call fcn.0040dfa0
add esp, 4
mov byte [esp + 0x22c], 0
mov ecx, eax
call fcn.0040e640
push 0
push 0
push 0x402750
call dword [sym.imp.MSVCR120.dll__beginthread]
add esp, 0xc
jmp 0x408be3
test edx, edx
je 0x408cbf
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x42
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5cf
push ecx
mov byte [esp + 0x228], 0x43
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x44
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.detected_1_of:_IsEmbedding_or_IsSilent_or_NoShowLoadingQBWnd_or__kAllowLoadingQBDialog._SQU_specific_exe_will_pass_NoShowLoadingQBWnd.
call fcn.00409a40
mov byte [esp + 0x22c], 0x45
cmp dword [0x45b91c], 0
jne 0x408bd0
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x46
test eax, eax
je 0x408bac
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x408bae
xor esi, esi
mov byte [esp + 0x22c], 0x45
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x408bca
test ecx, ecx
je 0x408bca
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
cmp dword [0x45b878], 0
je 0x408cbf
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.int___cdecl_LaunchQBWAsDLL_struct_HINSTANCE____struct_HINSTANCE____const_char__int_enum__anonymous_namespace::AllowLoadingQBDialogType_class_Util::TString_char_class_Util::TStringAllocator_char_____
call fcn.00409a40
push ecx
mov byte [esp + 0x220], 0x47
mov ecx, esp
mov dword [esp + 0x28], esp
push str.LaunchQBWAsDLL
call fcn.00409a40
push 0x5d1
push ecx
mov byte [esp + 0x228], 0x48
mov ecx, esp
mov dword [esp + 0x34], esp
push str.srcQbwExe.cpp
call fcn.00409a40
push ecx
mov byte [esp + 0x22c], 0x49
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.invoke_QBWMain_in_QBW_DLL_on_main_thread
call fcn.00409a40
mov byte [esp + 0x22c], 0x4a
cmp dword [0x45b91c], 0
jne 0x408cac
push 8
call ebx
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x22c], 0x4b
test eax, eax
je 0x408c88
mov ecx, eax
call fcn.0040e030
mov esi, eax
jmp 0x408c8a
xor esi, esi
mov byte [esp + 0x22c], 0x4a
mov ecx, dword [0x45b91c]
cmp esi, ecx
je 0x408ca6
test ecx, ecx
je 0x408ca6
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x45b91c], esi
mov byte [esp + 0x22c], 0
mov ecx, dword [0x45b91c]
call fcn.0040e640
push dword [ebp + 0xc]
push dword [esp + 0x74]
push dword [esp + 0x74]
push str.QBWMain.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call edi
add esp, 0x10
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.0040abc0
mov eax, esi
mov ecx, dword [esp + 0x208]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1f0]
xor ecx, esp
call fcn.0043bfe6
mov esp, ebp
pop ebp
ret