Function at 0x433b20
Capabilities:
Check os version
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x594
mov eax, dword [0x4da6bc]
xor eax, esp
mov dword [esp + 0x590], eax
push ebx
push esi
push edi
lea eax, [esp + 0x288]
push eax
mov esi, ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x28c], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x298], 2
jne 0x433b89
mov eax, dword [esp + 0x28c]
cmp eax, 5
ja 0x433b82
jne 0x433b89
cmp dword [esp + 0x290], 1
jb 0x433b89
mov byte [esp + 0x13], 1
jmp 0x433b8e
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
mov ebx, dword [sym.imp.USER32.dll_SystemParametersInfoW]
lea eax, [esi + 0xcc]
mov dword [eax], 0
je 0x433bb3
push 0
push eax
push 0
push 0x1022
call ebx
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
push 4
call edi
push 0xd
mov dword [esi + 0xe4], eax
call edi
push 0xe
mov dword [esi + 0xe8], eax
mov dword [esi + 0xec], eax
call edi
push 7
mov dword [esi + 0xf4], eax
call edi
movzx ecx, byte [esi + 0xe6]
imul ecx, ecx, 0xcf
mov dword [esi + 0xf8], eax
movzx eax, byte [esi + 0xea]
lea edx, [eax + eax*2]
movzx eax, byte [esi + 0xe9]
shl edx, 4
add ecx, edx
movzx edx, byte [esi + 0xe5]
imul edx, edx, 0xcf
lea eax, [eax + eax*2]
shl eax, 4
add edx, eax
movzx eax, byte [esi + 0xe8]
sar ecx, 8
sar edx, 8
movzx ecx, cl
movzx edx, dl
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
shl ecx, 8
or ecx, edx
movzx edx, byte [esi + 0xe4]
imul edx, edx, 0xcf
lea eax, [eax + eax*2]
shl eax, 4
add edx, eax
sar edx, 8
movzx edx, dl
shl ecx, 8
or ecx, edx
push 0x2d
mov dword [esi + 0xf0], ecx
call edi
push 0x2e
mov dword [esi + 0x8c], eax
call edi
push 0x2d
mov dword [esi + 0x90], eax
call edi
push 0x2e
mov dword [esi + 0x94], eax
call edi
xor edi, edi
push edi
mov dword [esi + 0x98], eax
or eax, 0xffffffff
lea ecx, [esp + 0x3a4]
push ecx
mov dword [esi + 0xd8], eax
mov dword [esi + 0xdc], eax
mov eax, dword [esi + 0x30]
push 0x1f4
push 0x29
mov dword [esi + 0x7c], 0x28
mov dword [esi + 0x88], eax
mov dword [esp + 0x3b0], 0x1f4
call ebx
lea edx, [esp + 0x538]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [esi + 0x80], eax
mov cx, word [esi + 0x7c]
mov word [esp + 0xf2], cx
mov eax, 0x300
xor ecx, ecx
cmp dword [esi + 0x7c], edi
mov word [esp + 0xf0], ax
jle 0x433d3e
mov edi, dword [esi + 0x7c]
lea eax, [esp + 0xf5]
jmp 0x433d10
movzx edx, byte [ecx*8 + 0x4d3e28]
mov byte [eax - 1], dl
movzx edx, byte [ecx*8 + 0x4d3e29]
mov byte [eax], dl
movzx edx, byte [ecx*8 + 0x4d3e2a]
mov byte [eax + 1], dl
mov byte [eax + 2], 0
inc ecx
add eax, 4
cmp ecx, edi
jl 0x433d10
xor edi, edi
lea eax, [esp + 0xf0]
push eax
call dword [sym.imp.GDI32.dll_CreatePalette]
mov dword [esi + 0x84], eax
mov ecx, dword [0x5144c4]
push 0x7f00
push edi
mov dword [esp + 0x50], 0x30
mov dword [esp + 0x54], 0x843
mov dword [esp + 0x58], 0x433910
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edi
call dword [sym.imp.USER32.dll_LoadCursorW]
cmp byte [esp + 0x13], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 5
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], str.ColorPicker
mov dword [esp + 0x74], edi
je 0x433dcb
push edi
lea edx, [esp + 0x1c]
push edx
push edi
push 0x1024
call ebx
cmp dword [esp + 0x18], edi
je 0x433dcb
or dword [esp + 0x4c], 0x20000
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x7c]
push ecx
push edx
movzx ebx, ax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea edi, [esi + 0x50]
lea eax, [esi + 0x4c]
test edi, edi
je 0x434184
test eax, eax
je 0x434184
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x514500
mov dword [edi + 4], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x514518]
mov dword [edi + 8], eax
push 0x514500
mov dword [0x514518], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esi + 4]
mov edi, dword [0x5144c4]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
mov edx, dword [esp + 0x88]
push 0
push edi
push 0
push eax
mov eax, dword [esp + 0x8c]
push 0x64
push 0x64
push edx
push eax
push SysReAllocStringLen
movzx ecx, bx
push 0x4bad64
push ecx
push 0
mov dword [esp + 0x48], ecx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [esi + 0x4c], eax
test eax, eax
je 0x434158
mov ecx, esi
call fcn.00433140
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x18], 0
call fcn.00432c00
mov edx, dword [esi + 0x30]
push edx
mov ecx, esi
call fcn.00432460
mov eax, dword [esi + 0x4c]
push 8
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
push 0
push 0xf
push 0xf
push 0
lea ecx, [esp + 0x9c]
push ecx
call edi
test eax, eax
je 0x433f10
lea ebx, [ebx]
push 0xf
push 0xf
push 0
lea edx, [esp + 0x98]
push edx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x433f91
lea eax, [esp + 0x8c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0xf
push 0xf
push 0
lea ecx, [esp + 0x9c]
push ecx
call edi
test eax, eax
jne 0x433ed0
mov edx, dword [esi + 0x4c]
push edx
call dword [sym.imp.USER32.dll_SetCapture]
call dword [sym.imp.USER32.dll_GetCapture]
mov ebx, dword [sym.imp.USER32.dll_ReleaseCapture]
cmp dword [esi + 0x4c], eax
jne 0x43407f
nop
push 0
push 0
push 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x434074
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0x407
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x30]
cmp eax, 0x200
ja 0x433ffb
je 0x433fc8
sub eax, 0x100
je 0x433fa8
sub eax, 1
je 0x434063
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x434063
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x590]
xor ecx, esp
call fcn.0049e9d2
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x78]
push eax
push ecx
push edx
push 0x100
mov ecx, esi
call fcn.00433630
jmp 0x434063
mov eax, dword [esp + 0x38]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ecx
push eax
mov ecx, esi
mov dword [esp + 0x24], edx
call fcn.00432ac0
cmp eax, dword [esi + 0xd8]
je 0x434063
push eax
mov ecx, esi
call fcn.00433540
jmp 0x434063
sub eax, 0x202
je 0x434022
sub eax, 2
je 0x434014
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x434063
call ebx
mov dword [esi + 0xe0], 0
jmp 0x434063
mov eax, dword [esp + 0x38]
movsx edx, ax
shr eax, 0x10
cwde
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call fcn.00432ac0
mov edi, eax
cmp edi, dword [esi + 0xd8]
je 0x434053
push edi
mov ecx, esi
call fcn.00433540
call ebx
xor edx, edx
cmp edi, 0xffffffff
setne dl
mov dword [esi + 0xe0], edx
call dword [sym.imp.USER32.dll_GetCapture]
cmp dword [esi + 0x4c], eax
je 0x433f30
jmp 0x43407f
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_PostQuitMessage]
call ebx
mov ecx, dword [esp + 0x14]
mov edi, dword [sym.imp.USER32.dll_DestroyWindow]
mov ebx, dword [esi + 0xe0]
push ecx
call edi
mov edx, dword [esi + 0x4c]
push edx
call edi
test eax, eax
je 0x4340a5
mov dword [esi + 0x4c], 0
test ebx, ebx
je 0x434122
cmp dword [esi + 0xd8], 0xfffffffe
jne 0x434119
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
push eax
push 0x102
push ecx
lea ecx, [esp + 0xb4]
call fcn.00422a80
mov dword [esp + 0xa8], vtable.WTL::CColorDialog.0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [esp + 0xac]
call fcn.004229a0
cmp eax, 1
jne 0x4340fa
mov edx, dword [esp + 0xd8]
mov dword [esi + 0x30], edx
jmp 0x434106
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x434122
push eax
call fcn.0049e13b
jmp 0x434122
mov eax, dword [esi + 0x88]
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 0x80]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call edi
test eax, eax
je 0x43413f
mov dword [esi + 0x80], 0
mov edx, dword [esi + 0x84]
push edx
call edi
test eax, eax
je 0x43415c
mov dword [esi + 0x84], 0
jmp 0x43415c
mov ebx, dword [esp + 0x14]
mov eax, dword [0x5144c4]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call dword [sym.imp.USER32.dll_UnregisterClassW]
mov ecx, dword [esp + 0x59c]
pop edi
pop esi
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.0049e9d2
mov esp, ebp
pop ebp
ret
push 0
push 0
push 1
push 0xc0000005
call dword [sym.imp.KERNEL32.dll_RaiseException]