Function at 0x401386
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x40], str.digital
mov dword [ebp - 0x60], sym.__Z15WindowProcedureP6HWND__jjl_16
mov dword [ebp - 0x64], 8
mov dword [ebp - 0x68], 0x30
mov dword [esp], 0
call sub.USER32.dll_GetSystemMetrics
sub esp, 4
mov edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x1f
lea eax, [edx + eax]
sar eax, 1
sub eax, 0x1c2
mov dword [ebp - 0x6c], eax
mov dword [esp], 1
call sub.USER32.dll_GetSystemMetrics
sub esp, 4
mov edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x1f
lea eax, [edx + eax]
sar eax, 1
sub eax, 0xfa
mov dword [ebp - 0x70], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call sub.USER32.dll_LoadIconA
sub esp, 8
mov dword [ebp - 0x50], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call sub.USER32.dll_LoadIconA
sub esp, 8
mov dword [ebp - 0x3c], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call sub.USER32.dll_LoadCursorA
sub esp, 8
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 1
lea eax, [ebp - 0x68]
mov dword [esp], eax
call sub.USER32.dll_RegisterClassExA
sub esp, 4
test ax, ax
jne 0x401486
mov dword [ebp - 0x74], 0
jmp 0x401e6b
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x23a
mov dword [esp + 0x18], 0x3e8
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x800a0000
mov dword [esp + 8], 0x409008
mov dword [esp + 4], str.digital
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [0x40b214], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b218], eax
mov dword [esp + 4], 0x3e9
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b218]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b21c], eax
mov dword [esp + 4], 0x3ea
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b21c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b220], eax
mov dword [esp + 4], 0x3eb
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b220]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b224], eax
mov dword [esp + 4], 0x3ec
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b224]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b228], eax
mov dword [esp + 4], 0x3ed
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b228]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b22c], eax
mov dword [esp + 4], 0x3ee
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b22c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b230], eax
mov dword [esp + 4], 0x3ef
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b230]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b234], eax
mov dword [esp + 4], 0x3f0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b234]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b238], eax
mov dword [esp + 4], 0x3f1
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b238]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b23c], eax
mov dword [esp + 4], 0x3f2
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b23c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b240], eax
mov dword [esp + 4], 0x3f3
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b240]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b244], eax
mov dword [esp + 4], 0x3f4
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b244]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b248], eax
mov dword [esp + 4], 0x3f5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b248]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b24c], eax
mov dword [esp + 4], 0x3f6
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b24c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b250], eax
mov dword [esp + 4], 0x3f7
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b250]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b254], eax
mov dword [esp + 4], 0x3f9
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b254]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b258], eax
mov dword [esp + 4], 0x3fa
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b258]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b25c], eax
mov dword [esp + 4], 0x3fb
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b25c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b260], eax
mov dword [esp + 4], 0x3ff
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b260]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b264], eax
mov dword [esp + 4], 0x400
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b264]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b268], eax
mov dword [esp + 4], 0x401
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b268]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b26c], eax
mov dword [esp + 4], 0x3fc
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b26c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b270], eax
mov dword [esp + 4], 0x3fd
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b270]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b274], eax
mov dword [esp + 4], 0x3fe
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b274]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b278], eax
mov dword [esp + 4], 0x402
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b278]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b27c], eax
mov dword [esp + 4], 0x403
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b27c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b280], eax
mov dword [esp + 4], 0x404
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b280]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b284], eax
mov dword [esp + 4], 0x405
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b284]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b288], eax
mov dword [esp + 4], 0x406
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b288]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b28c], eax
mov dword [esp + 4], 0x407
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b28c]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b290], eax
mov dword [esp + 4], 0x3f8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_LoadBitmapA
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x40b290]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
sub esp, 4
mov dword [0x40b294], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_GetDC
sub esp, 4
mov dword [esp + 8], 0x23a
mov dword [esp + 4], 0x3e8
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleBitmap
sub esp, 0xc
mov dword [esp + 4], eax
mov eax, dword [0x40b294]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.USER32.dll_ShowWindow
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sub.USER32.dll_GetMessageA
sub esp, 0x10
test eax, eax
je 0x401e65
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sub.USER32.dll_TranslateMessage
sub esp, 4
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sub.USER32.dll_DispatchMessageA
sub esp, 4
jmp 0x401e1d
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x74]
leave
ret 0x10