Function at 0x402050
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], 0
mov esi, dword [ebp + 0x10]
mov dword [esp + 4], 1
mov dword [esp], 0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x30], eax
call sym.DllMain_MGM_HINSTANCE____unsigned_long__void_
test al, al
je 0x4021e6
mov dword [esp], 0x308
call sym.operator_new_unsigned_int_
mov ebx, eax
mov ecx, eax
call method.WindowData.WindowData__
test ebx, ebx
je 0x4021e6
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._CreateEventA_16
sub esp, 0x10
mov dword [ebx + 0xd0], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._CreateEventA_16
mov dword [ebx + 0xd4], eax
mov eax, dword [ebp + 8]
sub esp, 0x10
mov dword [ebx], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0xc], eax
mov dword [esp], esi
call sym._strlen
lea ecx, [ebx + 0x10]
mov dword [esp], esi
mov dword [esp + 4], eax
call method.std::string.assign_char_const__unsigned_int_
lea eax, [ebx + 0xd8]
sub esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], sym.__Z21BGI__ThreadInitWindowPv_4
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._CreateThread_24
sub esp, 0x18
test eax, eax
je 0x4022e6
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0xd4]
lea esi, [ebx + 0x110]
mov dword [esp + 0xc], 0xffffffff
lea edi, [ebx + 0x2c8]
mov dword [esp + 8], 0
mov dword [esp], 2
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
call sym._WaitForMultipleObjects_16
sub esp, 0x10
test eax, eax
jne 0x4021f3
sub edi, 0x28
mov ecx, edi
call method.std::_Deque_base_tagPOINTS__std::allocator_tagPOINTS___._Deque_base__
cmp esi, edi
jne 0x4021b3
lea ecx, [ebx + 0x14]
call method.std::_Deque_base_char__std::allocator_char___._Deque_base__
mov ecx, dword [ebx + 0x10]
mov eax, 0xffffffff
lock xadd dword [ecx - 4], eax
test eax, eax
jle 0x402338
mov dword [esp], ebx
call sym.operator_delete_void_
lea esp, [ebp - 0xc]
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [0x49e040]
lea eax, [esi + 1]
mov dword [0x49e040], eax
mov eax, dword [0x49e048]
cmp eax, dword [0x49e04c]
je 0x402355
test eax, eax
je 0x40234e
mov edx, dword [ebx + 0x98]
mov dword [eax], edx
mov eax, dword [0x49e048]
add eax, 4
mov dword [0x49e048], eax
movzx eax, byte [ebp - 0x2c]
mov dword [ebx + 0xf4], 0
mov dword [0x48d004], esi
mov byte [ebx + 0xc4], al
movzx eax, byte [ebp - 0x30]
mov byte [ebx + 0xc5], al
call sym._graphdefaults
mov dword [esp], 0
call sym._setcolor
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0
mov dword [esp], 0
lea edi, [eax - 1]
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], edi
lea ebx, [eax - 1]
mov dword [esp + 8], ebx
call sym._line
mov dword [esp + 4], 0
mov dword [esp], 1
call sym._setfillstyle
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._bar
mov dword [esp], 0xf
call sym._setcolor
mov dword [esp + 4], 0xf
mov dword [esp], 1
call sym._setfillstyle
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._showerrorbox.part.1
lea edi, [ebx + 0x110]
lea esi, [ebx + 0x2c8]
sub esi, 0x28
mov ecx, esi
call method.std::_Deque_base_tagPOINTS__std::allocator_tagPOINTS___._Deque_base__
cmp edi, esi
jne 0x4022f7
lea ecx, [ebx + 0x14]
call method.std::_Deque_base_char__std::allocator_char___._Deque_base__
mov eax, dword [ebx + 0x10]
mov edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jg 0x4021de
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x20]
mov dword [esp], eax
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
sub esp, 4
jmp 0x4021de
lea eax, [ebp - 0x21]
sub ecx, 0xc
mov dword [esp], eax
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
sub esp, 4
jmp 0x4021de
xor eax, eax
jmp 0x402227
lea edx, [ebx + 0x98]
mov ecx, 0x49e044
mov dword [esp + 4], edx
mov dword [esp], eax
call method.std::vector_HWND____std::allocator_HWND_____._M_insert_aux___gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND_________HWND___const_
sub esp, 8
jmp 0x40222f