Function at 0x403c21
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x94
cmp dword [ebp + 0xc], 0x8004
je 0x4041ed
cmp dword [ebp + 0xc], 0x8004
ja 0x404502
cmp dword [ebp + 0xc], 0x8000
je 0x404125
cmp dword [ebp + 0xc], 0x8000
ja 0x404502
cmp dword [ebp + 0xc], 0x111
je 0x404285
cmp dword [ebp + 0xc], 0x111
ja 0x404502
cmp dword [ebp + 0xc], 3
je 0x404529
cmp dword [ebp + 0xc], 3
ja 0x404502
cmp dword [ebp + 0xc], 1
je 0x403ca2
cmp dword [ebp + 0xc], 2
je 0x4044ef
jmp 0x404502
lea eax, [ebp - 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
call eax
sub esp, 8
mov dword [esp + 8], 0x30
mov dword [esp + 4], 0
lea eax, [ebp - 0x64]
mov dword [esp], eax
call sym._memset
mov eax, dword [0x438044]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x3c], str.ew::logoArea
mov dword [ebp - 0x5c], dbg.WinLogoAreaProc
mov dword [ebp - 0x64], 0x30
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x38], 0
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_LoadCursorW]
call eax
sub esp, 8
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [esp], 0x35a245
mov eax, dword [sym.imp.GDI32.dll_CreateSolidBrush]
call eax
sub esp, 4
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x64]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_RegisterClassExW]
call eax
sub esp, 4
test ax, ax
jne 0x403d99
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x42d56c
mov dword [esp + 4], str.An_error_occured_while_loading_window__Please_try_again_
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_DestroyWindow]
call eax
sub esp, 4
jmp 0x40453c
mov eax, dword [0x438044]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x34]
sub ecx, edx
mov ebx, dword [0x438044]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x4b
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x50000000
mov dword [esp + 8], 0x42d5ea
mov dword [esp + 4], str.ew::logoArea
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
call eax
sub esp, 0x30
mov dword [ebx + 0x30], eax
mov eax, dword [0x438044]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x30]
sub ecx, edx
lea edx, [ecx - 0x4b]
mov ebx, dword [0x438044]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], 0x82
mov dword [esp + 0x14], 0x4b
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x50800000
mov dword [esp + 8], 0x42d5ea
mov dword [esp + 4], 0x42d5ec
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
call eax
sub esp, 0x30
mov dword [ebx + 0x28], eax
mov eax, dword [0x438044]
mov edx, dword [eax]
mov eax, dword [0x438044]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x32
mov dword [esp + 0x18], 0x82
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x50800201
mov dword [esp + 8], 0x42d5fa
mov dword [esp + 4], 0x42d5ec
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
call eax
sub esp, 0x30
mov dword [ebp - 0x24], eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
call eax
sub esp, 0x10
mov eax, dword [0x438044]
mov eax, dword [eax]
mov ebx, dword [0x438044]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 7
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x32
mov dword [esp + 0x18], 0x82
mov dword [esp + 0x14], 0x4b
mov dword [esp + 0x10], 0x82
mov dword [esp + 0xc], 0x50000001
mov dword [esp + 8], 0x42d612
mov dword [esp + 4], 0x42d624
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
call eax
sub esp, 0x30
mov dword [ebx + 0x38], eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x10]
mov edx, eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x38]
mov dword [esp + 0xc], 1
mov dword [esp + 8], edx
mov dword [esp + 4], 0x30
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
call eax
sub esp, 0x10
mov eax, dword [0x438044]
mov eax, dword [eax]
mov ebx, dword [0x438044]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 8
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x32
mov dword [esp + 0x18], 0x82
mov dword [esp + 0x14], 0x4b
mov dword [esp + 0x10], 0x104
mov dword [esp + 0xc], 0x50000001
mov dword [esp + 8], 0x42d632
mov dword [esp + 4], 0x42d624
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
call eax
sub esp, 0x30
mov dword [ebx + 0x40], eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x10]
mov edx, eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x40]
mov dword [esp + 0xc], 1
mov dword [esp + 8], edx
mov dword [esp + 4], 0x30
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
call eax
sub esp, 0x10
mov eax, dword [0x438044]
mov eax, dword [eax]
mov ebx, dword [0x438044]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 9
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x32
mov dword [esp + 0x18], 0x82
mov dword [esp + 0x14], 0x4b
mov dword [esp + 0x10], 0x186
mov dword [esp + 0xc], 0x50000001
mov dword [esp + 8], 0x42d644
mov dword [esp + 4], 0x42d624
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
call eax
sub esp, 0x30
mov dword [ebx + 0x3c], eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x10]
mov edx, eax
mov eax, dword [0x438044]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0xc], 1
mov dword [esp + 8], edx
mov dword [esp + 4], 0x30
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
call eax
sub esp, 0x10
jmp 0x40453c
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x40452c
mov dword [esp + 4], 0x6c
mov dword [esp], 1
call sym._calloc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x40452f
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0x20]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x42d658
mov dword [esp + 4], 0xb
mov dword [esp], eax
call sym._swprintf
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax + 8]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call dbg.ew_win_order_new
mov dword [ebx + 0x1c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8004
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
call eax
sub esp, 0x10
jmp 0x40453c
mov eax, dword [0x438044]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xc], eax
jmp 0x404235
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x40422b
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x40422c
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_DestroyWindow]
call eax
sub esp, 4
jmp 0x40422c
nop
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4041fd
mov dword [ebp - 0x10], 0
mov eax, dword [0x438044]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x14], eax
jmp 0x40427a
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call dbg.ew_win_orderitem_new
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x10], 1
cmp dword [ebp - 0x14], 0
jne 0x404252
jmp 0x40453c
cmp dword [ebp + 0x10], 7
jne 0x404354
mov eax, dword [0x438044]
mov eax, dword [eax + 0x48]
test eax, eax
jne 0x4042e0
call dbg.ew_win_products_init
test eax, eax
je 0x4042d2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x42d56c
mov dword [esp + 4], str.Failed_to_open_products
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
jmp 0x40453c
mov ebx, dword [0x438044]
call dbg.ew_win_products_new
mov dword [ebx + 0x48], eax
mov eax, dword [0x438044]
mov edx, dword [eax + 0x44]
mov eax, dword [0x438044]
mov eax, dword [eax + 0x48]
cmp edx, eax
je 0x404532
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x404321
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
mov edx, dword [0x438044]
mov eax, dword [0x438044]
mov edx, dword [edx + 0x48]
mov dword [eax + 0x44], edx
mov eax, dword [0x438044]
mov eax, dword [eax + 0x48]
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
jmp 0x404538
cmp dword [ebp + 0x10], 8
jne 0x404423
mov eax, dword [0x438044]
mov eax, dword [eax + 0x50]
test eax, eax
jne 0x4043af
call dbg.ew_win_history_init
test eax, eax
je 0x4043a1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x42d56c
mov dword [esp + 4], str.Failed_to_open_history
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
jmp 0x40453c
mov ebx, dword [0x438044]
call dbg.ew_win_history_new
mov dword [ebx + 0x50], eax
mov eax, dword [0x438044]
mov edx, dword [eax + 0x44]
mov eax, dword [0x438044]
mov eax, dword [eax + 0x50]
cmp edx, eax
je 0x404535
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4043f0
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
mov edx, dword [0x438044]
mov eax, dword [0x438044]
mov edx, dword [edx + 0x50]
mov dword [eax + 0x44], edx
mov eax, dword [0x438044]
mov eax, dword [eax + 0x50]
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
jmp 0x404538
cmp dword [ebp + 0x10], 9
jne 0x404538
mov eax, dword [0x438044]
mov eax, dword [eax + 0x4c]
test eax, eax
jne 0x40447e
call dbg.ew_win_settings_init
test eax, eax
je 0x404470
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x42d56c
mov dword [esp + 4], str.Failed_to_open_settings
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
jmp 0x40453c
mov ebx, dword [0x438044]
call dbg.ew_win_settings_new
mov dword [ebx + 0x4c], eax
mov eax, dword [0x438044]
mov edx, dword [eax + 0x44]
mov eax, dword [0x438044]
mov eax, dword [eax + 0x4c]
cmp edx, eax
je 0x40453b
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4044bf
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
mov edx, dword [0x438044]
mov eax, dword [0x438044]
mov edx, dword [edx + 0x4c]
mov dword [eax + 0x44], edx
mov eax, dword [0x438044]
mov eax, dword [eax + 0x44]
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
sub esp, 8
jmp 0x404538
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_PostQuitMessage]
call eax
sub esp, 4
jmp 0x40453c
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
call eax
sub esp, 0x10
jmp 0x404541
nop
jmp 0x40453c
nop
jmp 0x40453c
nop
jmp 0x40453c
nop
jmp 0x40453c
nop
jmp 0x40453c
nop
jmp 0x40453c
nop
mov eax, 0
mov ebx, dword [ebp - 4]
leave
ret 0x10