Function at 0x40c670
Capabilities:
Access peb ldr_data
Get number of processors
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x50
mov ebx, dword [0x4e4004]
test ebx, ebx
je 0x40ded0
mov dword [esp], 0
call dword [sym.imp.user32.dll_GetDC]
mov ebx, dword [sym.imp.gdi32.dll_CreateCompatibleDC]
sub esp, 4
mov edi, eax
mov dword [esp], eax
call ebx
sub esp, 4
mov esi, eax
mov dword [esp], edi
mov dword [esp + 8], 0x64
mov dword [esp + 4], 0x64
call dword [sym.imp.gdi32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0x28], edi
sub esp, 0xc
mov dword [ebp - 0x24], eax
mov dword [esp], edi
call ebx
sub esp, 4
mov edi, eax
mov dword [esp + 4], 0x34
mov dword [esp], 1
call dword [sym.imp.msvcrt.dll_calloc]
lea ecx, [ebp - 0x10]
mov dword [eax], 0x28
mov dword [eax + 8], 0x14
mov dword [eax + 4], 0x14
mov dword [eax + 0xc], 0x200001
mov dword [eax + 0x10], 0
mov dword [esp + 0xc], ecx
mov ecx, dword [sym.imp.gdi32.dll_CreateDIBSection]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [ebp - 0x30], eax
mov dword [esp], esi
mov dword [ebp - 0x20], ecx
call ecx
sub esp, 0x18
mov ebx, eax
mov eax, 0xe52
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Couldnt_create_source_bitmap_n
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, dword [ebp - 0x24]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [sym.imp.gdi32.dll_SelectObject]
mov dword [ebp - 0x18], eax
call eax
sub esp, 8
mov dword [esp + 4], ebx
mov dword [esp], edi
mov eax, dword [ebp - 0x18]
call eax
sub esp, 8
mov ebx, dword fs:[0x18]
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe5e
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xffffffff
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe62
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xe63
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe66
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xf
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe68
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 3
mov dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x1c], 0xa
mov dword [esp + 0x18], 0xa
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe6a
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 3
mov dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x1c], 0xa
mov dword [esp + 0x18], 0xa
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe6c
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xfffffff6
mov dword [esp + 4], 0xfffffff6
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_SetWindowOrgEx]
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xffffffff
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe71
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe74
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov ecx, dword [sym.imp.gdi32.dll_SetMapMode]
mov dword [esp + 4], 8
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov dword [ebp - 0x1c], ecx
call ecx
sub esp, 8
mov dword [esp], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0xa
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa
call dword [sym.imp.gdi32.dll_ScaleWindowExtEx]
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 0x18
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x20], 0x1e
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xffffffff
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe79
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x20], 0x1e
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe7c
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov dword [esp], esi
mov dword [esp + 4], 8
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ecx
call ecx
mov edx, dword [sym.imp.gdi32.dll_SetViewportExtEx]
sub esp, 8
mov dword [esp], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov dword [ebp - 0x1c], edx
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x32
mov dword [esp + 0x20], 0x32
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe82
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x32
mov dword [esp + 0x20], 0x32
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0xffffffec
mov dword [esp + 4], 0xffffffec
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe85
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x32
mov dword [esp + 0x20], 0x32
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0xffffffec
mov dword [esp + 0xc], 0xffffffec
mov dword [esp + 8], 0xffffffec
mov dword [esp + 4], 0xffffffec
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe88
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xe89
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x32
mov dword [esp + 0x20], 0x32
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0xffffffec
mov dword [esp + 8], 0
mov dword [esp + 4], 0xffffffec
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe8c
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xe8d
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x32
mov dword [esp + 0x20], 0x32
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0xffffffec
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0xffffffec
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe90
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xe91
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp], esi
mov dword [esp + 4], 1
mov ecx, dword [ebp - 0x2c]
call ecx
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov edx, dword [ebp - 0x1c]
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xffffffe2
mov dword [esp + 0x20], 0xffffffe2
mov dword [esp + 0x1c], 0xffffffec
mov dword [esp + 0x18], 0xffffffec
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe97
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xe98
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0xffffffe2
mov dword [esp + 0x20], 0x1e
mov dword [esp + 0x1c], 0xffffffec
mov dword [esp + 0x18], 0xffffffec
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe9b
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xe9c
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x20], 0xffffffe2
mov dword [esp + 0x1c], 0xffffffec
mov dword [esp + 0x18], 0xffffffec
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xe9f
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xea0
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x20], 0x1e
mov dword [esp + 0x1c], 0xffffffec
mov dword [esp + 0x18], 0xffffffec
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xea3
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xea4
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x20], 0x1e
mov dword [esp + 0x1c], 0x14
mov dword [esp + 0x18], 0x14
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xea7
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xea8
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x20], 0x1e
mov dword [esp + 0x1c], 0xffffffc4
mov dword [esp + 0x18], 0xffffffc4
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xeab
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xeac
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov edx, dword [ebp - 0x1c]
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 0x10
mov dword [esp], esi
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xeb1
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xeb2
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0xdeadbeef
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x14], esi
mov dword [esp], esi
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0x13
mov dword [esp + 0x18], 0x13
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xeb8
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xeb9
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x14], esi
mov dword [esp], esi
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], 1
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x14
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xebd
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xebe
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x14], esi
mov dword [esp], esi
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0xa
mov dword [esp + 0x18], 0x14
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xec2
call fcn.00401020
mov dword [esp], edi
mov dword [esp + 4], 0x49a2a9
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x14], esi
mov dword [esp], esi
mov dword [esp + 0x28], 0x800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0x14
mov dword [esp + 0x18], 0xa
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xec5
call fcn.00401020
mov dword [esp], edi
mov dword [esp + 4], 0x49a2a9
call fcn.00401820
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0x28], 0x1800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xecc
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0x10]
mov dword [edx + 0x10], 3
mov dword [edx + 0x28], 0xff0000
mov dword [edx + 0x2c], 0xff00
mov dword [edx + 0x30], 0xff
mov dword [esp + 4], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [ebp - 0x2c], edx
mov dword [esp], esi
mov ecx, dword [ebp - 0x20]
call ecx
sub esp, 0x18
mov edi, eax
mov eax, 0xed3
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Couldnt_create_source_bitmap_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov eax, dword [ebp - 0x18]
call eax
mov edx, dword [sym.imp.gdi32.dll_DeleteObject]
sub esp, 8
mov dword [esp], eax
mov dword [ebp - 0x1c], edx
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 4
mov dword [esp + 0x28], 0x1800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xed9
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str.GdiAlphaBlend_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.00401820
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x10]
mov dword [edx + 0x10], 3
mov dword [edx + 0x28], 0xff
mov dword [edx + 0x2c], 0xff00
mov dword [edx + 0x30], 0xff0000
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov ecx, dword [ebp - 0x20]
call ecx
sub esp, 0x18
mov edi, eax
mov eax, 0xee0
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Couldnt_create_source_bitmap_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov eax, dword [ebp - 0x18]
call eax
sub esp, 8
mov dword [esp], eax
mov edx, dword [ebp - 0x1c]
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 4
mov dword [esp + 0x28], 0x1800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xee6
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xee7
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x10]
mov eax, 0x18
mov word [edx + 0xe], ax
mov dword [edx + 0x10], 0
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov ecx, dword [ebp - 0x20]
call ecx
sub esp, 0x18
mov edi, eax
mov eax, 0xeec
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Couldnt_create_source_bitmap_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov eax, dword [ebp - 0x18]
call eax
sub esp, 8
mov dword [esp], eax
mov edx, dword [ebp - 0x1c]
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 4
mov dword [esp + 0x28], 0x1800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xef2
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xef3
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x2c]
mov ecx, 1
mov word [edx + 0xe], cx
lea ecx, [ebp - 0x10]
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov ecx, dword [ebp - 0x20]
call ecx
sub esp, 0x18
mov edi, eax
mov eax, 0xef7
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Couldnt_create_source_bitmap_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x14]
mov dword [esp], edi
mov eax, dword [ebp - 0x18]
call eax
sub esp, 8
mov dword [esp], eax
mov edx, dword [ebp - 0x1c]
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 4
mov dword [esp + 0x28], 0x1800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [ebp - 0x14], edi
mov dword [esp + 0x14], edi
mov dword [esp], esi
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov edi, eax
mov eax, 0xefd
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49a2a9
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xefe
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], 0x64
mov dword [esp], 0x64
call dword [sym.imp.gdi32.dll_CreateBitmap]
sub esp, 0x14
mov edi, eax
mov eax, 0xf01
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Couldnt_create_source_bitmap_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov ecx, dword [ebp - 0x18]
call ecx
sub esp, 8
mov dword [esp], eax
mov edx, dword [ebp - 0x1c]
call edx
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 4
mov dword [esp + 0x28], 0x1800000
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov eax, dword [ebp - 0x14]
mov dword [esp], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x14
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x4e4004]
sub esp, 0x2c
mov dword [ebp - 0x18], eax
mov eax, 0xf07
call fcn.00401020
mov dword [esp + 4], 0x49a2a9
mov ecx, dword [ebp - 0x18]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0xf08
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x499ff0
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00401820
mov ebx, dword [sym.imp.gdi32.dll_DeleteDC]
mov dword [esp], esi
call ebx
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call ebx
sub esp, 4
mov dword [esp], edi
mov esi, dword [ebp - 0x1c]
call esi
mov eax, dword [ebp - 0x24]
sub esp, 4
mov dword [esp], eax
call esi
mov edi, dword [ebp - 0x28]
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp], 0
call dword [sym.imp.user32.dll_ReleaseDC]
mov edx, dword [ebp - 0x2c]
sub esp, 8
mov dword [esp], edx
call dword [sym.imp.msvcrt.dll_free]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xe41
call fcn.00401020
mov dword [esp], str.GdiAlphaBlend___is_not_implemented_n
call fcn.004017f0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret