Function at 0x4011b0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x411014]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
push str.Start_MTU_device_monitor_thread_n
call fcn.00403fb0
push 0x15f900
xor ebx, ebx
push ebx
push 0x5736c0
call fcn.004097d0
push 0x15f900
push ebx
push 0x413dc0
call fcn.004097d0
add esp, 0x1c
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x2710
mov byte [esp + 0x18], bl
cmp eax, ebx
jne 0x40123a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_create_startup_event:__d_n
call fcn.00403fb0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.00403ffe
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x20]
push eax
push ebx
lea ecx, [esp + 0x18]
push ecx
push 0x401530
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0xffffffff
jne 0x40128d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_launch_device_monitor_thread__error__d_n
call fcn.00403fb0
push str.Error:_Unable_to_launch__possibly_another_instance_already_running_n
call fcn.0040415f
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.00403ffe
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
movzx ecx, byte [esp + 0x18]
push ecx
push str.Startup_event_signaled:__d_n
call fcn.00403fb0
add esp, 8
cmp byte [esp + 0x18], bl
je 0x4012e0
push str.Unable_to_launch_device_monitor_thread_n
call fcn.00403fb0
mov edx, dword [esp + 0x14]
add esp, 4
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.00403ffe
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 8], 1
jne 0x401431
push str.App_mode__create_window_n
call fcn.00403fb0
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x413d94], eax
cmp eax, ebx
jne 0x40132d
call edi
push eax
push str.App_mode__GetModuleHandle_failure__d_n
call fcn.00403fb0
mov eax, dword [0x413d94]
add esp, 8
push 0x7f00
push ebx
mov dword [0x413d60], 0x30
mov dword [0x413d64], 3
mov dword [0x413d68], 0x402f70
mov dword [0x413d6c], ebx
mov dword [0x413d70], ebx
mov dword [0x413d74], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebx
mov dword [0x413d78], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push ebx
mov dword [0x413d7c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x413d60
mov dword [0x413d80], eax
mov dword [0x413d84], 0x40e05c
mov dword [0x413d88], 0x40e730
mov dword [0x413d8c], ebx
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x4013c4
call edi
push eax
push str.App_mode__RegisterClass_failure__d_n
call fcn.00403fb0
add esp, 8
mov ecx, dword [0x413d94]
push ebx
push ecx
push ebx
push ebx
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0x20000000
push str.QCMTU
push str.QCMTU
push 0x8000000
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x413d90], eax
cmp eax, ebx
jne 0x401415
call edi
push eax
push str.App_mode__CreateWindow_failure__d_n
call fcn.00403fb0
add esp, 8
call fcn.004043c8
cmp eax, 0x1b
jne 0x401415
mov edx, dword [0x6d2fc8]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x4014ec
mov edx, dword [0x411ed4]
mov ecx, dword [0x411ed0]
mov esi, dword [0x411ed8]
mov edi, dword [0x411edc]
xor eax, eax
mov dword [0x413d44], edx
mov dword [0x413d30], edx
push 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x28]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, dword [0x412ba0]
push edx
push eax
mov dword [0x413d40], ecx
mov dword [0x413d48], esi
mov dword [0x413d4c], edi
mov dword [esp + 0x30], 0x20
mov dword [esp + 0x34], 5
mov dword [0x413d2c], ecx
mov dword [0x413d34], esi
mov dword [0x413d38], edi
call dword [sym.imp.USER32.dll_RegisterDeviceNotificationA]
mov dword [0x412b94], eax
cmp eax, ebx
jne 0x4014e8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_register_device_notification__error__d_n
call fcn.00403fb0
mov ecx, dword [0x6d2fc8]
add esp, 8
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [esp + 0x1c]
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.USER32.dll_UnregisterDeviceNotification]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.Device_monitor_thread_terminated_n
call fcn.00403fb0
mov ecx, dword [esp + 0x48]
add esp, 4
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403ffe
mov esp, ebp
pop ebp
ret