Function at 0x404300
Capabilities:
Create thread

Disassembly:
sub esp, 0x188
push esi
push str.830FA222_03D8_11d3_A802_11A1B913EF45
xor esi, esi
push esi
push 0x1f0001
mov dword [esp + 0x10], esi
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
cmp eax, esi
je 0x404335
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop esi
add esp, 0x188
ret 0x10
push ebx
push ebp
push edi
push str.830FA222_03D8_11d3_A802_11A1B913EF45
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, dword [esp + 0x19c]
push 0x7f00
mov edi, eax
push esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], 0x30
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], 0x403c20
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
call dword [sym.imp.USER32.dll_LoadCursorA]
push esi
mov dword [esp + 0x3c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], str.CALIB:MAIN
mov dword [esp + 0x4c], esi
call dword [sym.imp.USER32.dll_RegisterClassExA]
mov dword [0x40eaf0], ebx
call dword [sym.imp.KERNEL32.dll_GetACP]
sub eax, 0x3a4
neg eax
sbb eax, eax
lea ecx, [esp + 0x68]
inc eax
push ecx
mov dword [0x40e140], eax
mov dword [esp + 0x6c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x78]
mov ebp, 1
cmp eax, ebp
jne 0x4043fd
mov eax, dword [0x40e140]
mov dword [0x40e75c], ebp
mov dword [0x40e758], esi
jmp 0x404497
cmp eax, 2
jne 0x40442f
mov eax, dword [esp + 0x6c]
cmp eax, 4
mov dword [0x40e75c], esi
jae 0x40441b
mov eax, dword [0x40e140]
jmp 0x40449d
jbe 0x404481
mov dword [0x40e754], ebp
mov dword [0x40e75c], esi
mov dword [0x40e758], esi
lea edx, [esp + 0x18]
push edx
push 0x20006
push esi
push str.SYSTEMCurrentControlSetServicesFCLPen
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404647
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0xfc]
push ecx
push 0xffffffffffffffff
push esi
call dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
mov eax, dword [esp + 0x130]
cmp eax, ebp
jne 0x4044bb
mov dword [0x40e808], ebp
jmp 0x4044d9
cmp eax, 4
mov eax, dword [0x40e140]
jne 0x40449d
mov dword [0x40e758], ebp
mov dword [0x40e75c], esi
mov dword [0x40e754], esi
cmp eax, esi
push esi
push str.CalTBwin
je 0x4044b1
push 0x40b934
jmp 0x404661
push str.This_is_not_the_Windows2000_XP.
jmp 0x404661
cmp eax, 2
jne 0x4044c7
mov dword [0x40e808], eax
jmp 0x4044d9
xor edx, edx
cmp eax, 3
setne dl
dec edx
and edx, 3
mov dword [0x40e808], edx
push 0x40eb20
call sub.HID.DLL_HidD_GetHidGuid
push 0x40eb20
call fcn.004029d0
add esp, 4
test eax, eax
push esi
je 0x40462c
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x40ea60], esi
mov dword [0x40ec4c], esi
call edi
push ebp
mov dword [0x40eae4], eax
call edi
mov ecx, dword [0x40ec4c]
mov edx, dword [0x40ea60]
push esi
push ebx
push esi
push esi
push eax
mov dword [0x40eaec], eax
mov eax, dword [0x40eae4]
push eax
push ecx
push edx
push 0x91000000
push str.Calibration
push str.CALIB:MAIN
push 0x88
call dword [sym.imp.USER32.dll_CreateWindowExA]
lea ecx, [esp + 0x10]
push ecx
push esi
push eax
push 0x402a70
push esi
push esi
mov dword [0x40eb10], eax
mov dword [0x40e7f0], ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, esi
mov dword [0x40e7f4], eax
jne 0x4045a8
cmp dword [0x40e140], esi
push esi
push str.CalTBwin
je 0x40458a
push 0x40b8e4
jmp 0x40458f
push str.It_failed_in_the_start_of_CalTBwin.
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
call fcn.004021b0
mov edx, dword [0x40eb10]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x1a8]
mov ecx, dword [0x40eb10]
push eax
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x40eb10]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push esi
push esi
push esi
lea eax, [esp + 0x58]
push eax
call edi
test eax, eax
je 0x40460c
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ebx, [ebx]
lea ecx, [esp + 0x4c]
push ecx
call ebx
lea edx, [esp + 0x4c]
push edx
call ebp
push esi
push esi
push esi
lea eax, [esp + 0x58]
push eax
call edi
test eax, eax
jne 0x4045f0
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x40461b
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esp + 0x54]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x188
ret 0x10
cmp dword [0x40e140], esi
push str.CalTBwin
je 0x404640
push 0x40b89c
jmp 0x404661
push str.Device_isnt_connected.
jmp 0x404661
cmp dword [0x40e140], esi
push esi
push str.CalTBwin
je 0x40465c
push 0x40b860
jmp 0x404661
push str.This_user_cannot_Calibration.
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x188
ret 0x10