Function at 0x41d1c0
Capabilities:
Delete file
Get common file path
Write file on windows

Disassembly:
push ebp
mov eax, 0x1160
mov ebp, esp
push edi
push esi
push ebx
call fcn.00494110
sub esp, eax
mov esi, dword [sym.imp.user32.dll_GetDC]
lea edi, [ebp - 0x864]
mov dword [esp], 0
call esi
mov ecx, 0x10b
mov dword [ebp - 0x10ec], 0xdeadbeef
mov dword [ebp - 0x110c], eax
mov ebx, eax
xor eax, eax
sub esp, 4
rep stosd dword es:[edi], eax
mov dword [ebp - 0x864], 0x28
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
lea eax, [ebp - 0x10ec]
mov dword [ebp - 0x85c], 0x64
mov dword [ebp - 0x860], 0x200
mov dword [ebp - 0x858], 0x180001
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.gdi32.dll_CreateDIBSection]
mov dword [esp], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [ebp - 0x1114], eax
call eax
sub esp, 0x18
mov ebx, eax
mov eax, 0x1d9
call fcn.00401020
xor eax, eax
test ebx, ebx
je 0x41feea
mov dword [esp], eax
mov dword [esp + 4], str.CreateDIBSection_failed_for_invalid_parameter:_bmi__0x0_n
call fcn.00401820
lea eax, [ebp - 0x10ec]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x864]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x110c]
mov dword [esp], eax
mov eax, dword [ebp - 0x1114]
call eax
sub esp, 0x18
mov edi, eax
mov eax, 0x1dc
call fcn.00401020
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x10f8], edx
mov dword [esp + 4], str.CreateDIBSection_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1dd
call fcn.00401020
lea eax, [ebp - 0x10c8]
mov dword [esp + 4], 0x54
mov dword [esp + 8], eax
mov eax, dword [sym.imp.gdi32.dll_GetObjectW]
mov dword [ebp - 0x10f0], edi
mov dword [esp], edi
mov dword [ebp - 0x111c], eax
call eax
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIBSection_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1de
call fcn.00401020
mov ecx, dword [ebp - 0x10ec]
mov eax, dword [ebp - 0x10b4]
mov dword [esp + 4], str.dibsec.dsBits__p___bits__p_n
cmp ecx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], ecx
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e1
call fcn.00401020
lea eax, [ebp - 0x10e4]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10ec]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_VirtualQuery]
mov edi, eax
call eax
sub esp, 0xc
cmp eax, 0x1c
sete al
mov dword [esp + 4], str.VirtualQuery_failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e3
call fcn.00401020
mov ecx, dword [ebp - 0x10ec]
mov eax, dword [ebp - 0x10e4]
mov dword [esp + 4], str._p____p_n
cmp ecx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], ecx
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e4
call fcn.00401020
mov ecx, dword [ebp - 0x10ec]
mov eax, dword [ebp - 0x10e0]
mov dword [esp + 4], str._p____p_n
cmp ecx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], ecx
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e5
call fcn.00401020
mov eax, dword [ebp - 0x10dc]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e6
call fcn.00401020
mov eax, dword [ebp - 0x10d8]
mov dword [esp + 4], str.0x_Ix___0x26000_n
cmp eax, 0x26000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e7
call fcn.00401020
mov eax, dword [ebp - 0x10d4]
mov dword [esp + 4], str._lx___MEM_COMMIT_n
cmp eax, 0x1000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e8
call fcn.00401020
mov eax, dword [ebp - 0x10d0]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1e9
call fcn.00401020
mov eax, dword [ebp - 0x10cc]
mov dword [esp + 4], str._lx___MEM_PRIVATE_n
cmp eax, 0x20000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov ebx, dword [ebp - 0x10ec]
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x180
lea eax, [ebp - 0x1074]
mov dword [esp], ebx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov dword [ebp - 0x10f4], edi
call edi
lea edi, [ebp - 0x438]
sub esp, 0xc
cmp eax, 0x1c
sete al
mov dword [esp + 4], str.VirtualQuery_failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x182
mov eax, dword [ebp - 0x1074]
mov dword [esp + 0xc], ebx
cmp ebx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str._p____p_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x183
mov eax, dword [ebp - 0x1070]
mov dword [esp + 0xc], ebx
cmp ebx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str._p____p_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x184
mov eax, dword [ebp - 0x106c]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x185
mov eax, dword [ebp - 0x1064]
mov dword [esp + 4], str._lx___MEM_COMMIT_n
cmp eax, 0x1000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x186
mov eax, dword [ebp - 0x1060]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x187
mov eax, dword [ebp - 0x105c]
mov dword [esp + 4], str._lx___MEM_PRIVATE_n
cmp eax, 0x20000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
xor eax, eax
mov ecx, 0x10b
rep stosd dword es:[edi], eax
mov eax, 0xcccccccc
mov ecx, 0x100
lea edi, [ebp - 0xc64]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x438], 0x28
mov dword [ebp - 0x430], 0x10
mov dword [ebp - 0x434], 0x10
mov dword [ebp - 0x42c], 0x200001
mov dword [esp], 0
call esi
lea ecx, [ebp - 0x438]
sub esp, 4
mov esi, eax
mov dword [esp + 0x14], ecx
lea ecx, [ebp - 0xc64]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov edi, dword [ebp - 0x10f0]
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [sym.imp.gdi32.dll_SetDIBits]
sub esp, 0x1c
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x195
xor eax, eax
cmp edi, 0x10
sete al
mov dword [esp + 8], edi
mov dword [esp + 4], str.SetDIBits_failed:_expected_16_got__d_n
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], esi
mov esi, dword [sym.imp.user32.dll_ReleaseDC]
mov dword [esp], 0
mov dword [ebp - 0x113c], esi
call esi
lea esi, [ebp - 0x1074]
sub esp, 8
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x199
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 8], 0x1c
mov eax, dword [ebp - 0x10f4]
call eax
sub esp, 0xc
cmp eax, 0x1c
sete al
mov dword [esp + 4], str.VirtualQuery_failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x19b
mov eax, dword [ebp - 0x1074]
mov dword [esp + 0xc], ebx
cmp ebx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str._p____p_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x19c
mov eax, dword [ebp - 0x1070]
mov dword [esp + 0xc], ebx
cmp ebx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str._p____p_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x19d
mov eax, dword [ebp - 0x106c]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x19e
mov eax, dword [ebp - 0x1064]
mov dword [esp + 4], str._lx___MEM_COMMIT_n
cmp eax, 0x1000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x19f
mov eax, dword [ebp - 0x105c]
mov dword [esp + 4], str._lx___MEM_PRIVATE_n
cmp eax, 0x20000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x1a0
mov eax, dword [ebp - 0x1060]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
lea eax, [ebp - 0xf74]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x49b1d2
mov dword [esp], 0x49b1d6
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
lea eax, [ebp - 0xf74]
sub esp, 0x10
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x40000000
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov esi, eax
call fcn.00492bc0
mov edx, dword [ebp - 0x10f8]
mov dword [eax], 0x499014
mov dword [eax + 4], 0x1a7
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.failed_to_open__s_error__lu_n
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xf74]
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00401820
lea eax, [ebp - 0x10e8]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2000
call dword [sym.imp.kernel32.dll_WriteFile]
sub esp, 0x14
mov ebx, eax
call fcn.00492bc0
mov edx, dword [ebp - 0x10f8]
mov dword [eax], 0x499014
mov dword [eax + 4], 0x1a9
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.WriteFile_failed_error__lu_n
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00401820
test ebx, ebx
jne 0x41feb6
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CloseHandle]
lea eax, [ebp - 0xf74]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
mov edi, dword [ebp - 0x10f0]
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
sub esp, 4
mov eax, edi
call fcn.0041c6f0
mov eax, dword [sym.imp.gdi32.dll_DeleteObject]
mov dword [esp], edi
lea edi, [ebp - 0x10ec]
mov ebx, dword fs:[0x18]
mov dword [ebp - 0x1118], eax
call eax
mov dword [ebp - 0x85c], 0xffffff9c
sub esp, 4
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x864]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x110c]
mov dword [esp], edi
mov esi, dword [ebp - 0x1114]
call esi
sub esp, 0x18
mov esi, eax
mov eax, 0x1f3
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.CreateDIBSection_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
setne al
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
mov eax, esi
call fcn.0041c6f0
mov dword [esp], esi
mov eax, dword [ebp - 0x1118]
call eax
mov eax, 8
lea ecx, [ebp - 0x10ec]
mov dword [ebx + 0x34], 0xdeadbeef
sub esp, 4
mov dword [ebp - 0x85c], 0x64
mov word [ebp - 0x856], ax
mov dword [ebp - 0x854], 1
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x864]
mov dword [esp + 4], ecx
mov dword [esp], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov esi, dword [ebp - 0x1114]
call esi
sub esp, 0x18
mov esi, eax
mov eax, 0x1fc
call fcn.00401020
xor eax, eax
test esi, esi
mov dword [esp + 4], str.CreateDIBSection_should_fail_when_asked_to_create_a_compressed_DIB_section_n
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x1fd
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], 0x49b274
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0xdeadbeef
sete al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x10
lea ecx, [ebp - 0x10ec]
mov dword [ebx + 0x34], 0xdeadbeef
mov word [ebp - 0x856], ax
mov dword [ebp - 0x854], 3
mov dword [ebp - 0x83c], 0xf800
mov dword [ebp - 0x838], 0x7e0
mov dword [ebp - 0x834], 0x1f
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x864]
mov dword [esp + 4], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [ebp - 0x110c], edi
mov dword [esp], edi
mov esi, dword [ebp - 0x1114]
lea edi, [ebp - 0x864]
call esi
sub esp, 0x18
mov esi, eax
mov eax, 0x206
call fcn.00401020
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.CreateDIBSection_error__ld_n
lea ebx, [ebp - 0x10e4]
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x209
call fcn.00401020
mov dword [esp + 8], 0x1c
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x10ec]
mov dword [esp], eax
mov ebx, dword [ebp - 0x10f4]
call ebx
sub esp, 0xc
cmp eax, 0x1c
sete al
mov dword [esp + 4], str.VirtualQuery_failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x20b
call fcn.00401020
mov edx, dword [ebp - 0x10ec]
mov eax, dword [ebp - 0x10e4]
mov dword [esp + 4], str._p____p_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x20c
call fcn.00401020
mov edx, dword [ebp - 0x10ec]
mov eax, dword [ebp - 0x10e0]
mov dword [esp + 4], str._p____p_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x20d
call fcn.00401020
mov eax, dword [ebp - 0x10dc]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x20e
call fcn.00401020
mov eax, dword [ebp - 0x10d8]
mov dword [esp + 4], str.0x_Ix___0x19000_n
cmp eax, 0x19000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x20f
call fcn.00401020
mov eax, dword [ebp - 0x10d4]
mov dword [esp + 4], str._lx___MEM_COMMIT_n
cmp eax, 0x1000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x210
call fcn.00401020
mov eax, dword [ebp - 0x10d0]
mov dword [esp + 4], str._lx___PAGE_READWRITE_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x211
call fcn.00401020
mov eax, dword [ebp - 0x10cc]
mov dword [esp + 4], str._lx___MEM_PRIVATE_n
cmp eax, 0x20000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
mov eax, esi
call fcn.0041c6f0
mov dword [esp], esi
mov eax, dword [ebp - 0x1118]
call eax
xor eax, eax
mov ecx, 0x10b
rep stosd dword es:[edi], eax
sub esp, 4
lea eax, [ebp - 0x10ec]
mov dword [ebp - 0x864], 0x28
mov dword [ebp - 0x85c], 0x10
mov dword [ebp - 0x860], 0x10
mov dword [ebp - 0x858], 0x10001
mov byte [ebp - 0x83a], 0xff
mov byte [ebp - 0x838], 0xff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x864]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x110c]
mov dword [esp], edi
mov esi, dword [ebp - 0x1114]
call esi
sub esp, 0x18
mov esi, eax
mov eax, 0x225
call fcn.00401020
xor eax, eax
test esi, esi
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x226
call fcn.00401020
lea eax, [ebp - 0x10c8]
mov dword [esp + 4], 0x54
mov dword [esp + 8], eax
mov dword [esp], esi
mov eax, dword [ebp - 0x111c]
call eax
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIBSection_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x227
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 0xc], 2
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu__should_be:__u_n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
xor eax, eax
mov dword [ebp - 0xf74], 0xc
mov word [ebp - 0xf6a], ax
lea eax, [ebp - 0xf74]
mov dword [esp + 0x14], eax
mov eax, dword [sym.imp.gdi32.dll_GetDIBits]
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [ebp - 0x1128], eax
call eax
sub esp, 0x1c
mov ebx, eax
mov eax, 0x230
call fcn.00401020
mov dword [esp + 4], str.GetDIBits_doesnt_work_with_a_BITMAPCOREHEADER_n
mov dword [esp], ebx
call fcn.00401820
mov eax, 0x231
call fcn.00401020
xor eax, eax
cmp dword [ebp - 0xf70], 0x100010
jne 0x41e006
xor eax, eax
cmp dword [ebp - 0xf6c], 0x10001
sete al
mov dword [esp], eax
mov dword [esp + 4], str.GetDIBits_didnt_fill_in_the_BITMAPCOREHEADER_structure_properly_n
call fcn.00401820
lea eax, [ebp - 0xf74]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x1074]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x110c]
mov dword [esp], eax
mov eax, dword [ebp - 0x1128]
call eax
sub esp, 0x1c
mov ebx, eax
mov eax, 0x236
call fcn.00401020
mov dword [esp + 4], str.GetDIBits_doesnt_work_with_a_BITMAPCOREHEADER_n
mov dword [esp], ebx
call fcn.00401820
mov eax, 0x237
call fcn.00401020
movzx eax, byte [ebp - 0xf67]
xor ecx, ecx
or al, byte [ebp - 0xf68]
or al, byte [ebp - 0xf63]
or al, byte [ebp - 0xf64]
movzx edx, byte [ebp - 0xf66]
jne 0x41e0b2
and dl, byte [ebp - 0xf65]
xor ecx, ecx
cmp dl, 0xff
sete cl
mov dword [esp], ecx
mov dword [esp + 4], str.The_color_table_has_not_been_translated_to_the_old_BITMAPCOREINFO_format_n
call fcn.00401820
lea eax, [ebp - 0x10ec]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xf74]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x110c]
mov dword [esp], eax
mov edi, dword [ebp - 0x1114]
call edi
sub esp, 0x18
mov ebx, eax
mov eax, 0x23d
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.CreateDIBSection_failed_with_a_BITMAPCOREINFO_n
setne al
mov dword [esp], eax
call fcn.00401820
lea edx, [ebp - 0xf68]
xor eax, eax
mov ecx, 0xc0
mov edi, edx
rep stosd dword es:[edi], eax
lea edi, [ebp - 0xf74]
mov dword [esp + 4], ebx
mov dword [esp + 0x14], edi
lea edi, [ebp - 0x1074]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x110c]
mov dword [esp], eax
mov eax, dword [ebp - 0x1128]
call eax
sub esp, 0x1c
mov edi, eax
mov eax, 0x241
call fcn.00401020
mov dword [esp + 4], str.GetDIBits_doesnt_work_with_a_BITMAPCOREHEADER_n
mov dword [esp], edi
call fcn.00401820
mov eax, 0x242
call fcn.00401020
movzx eax, byte [ebp - 0xf67]
xor ecx, ecx
or al, byte [ebp - 0xf68]
or al, byte [ebp - 0xf63]
or al, byte [ebp - 0xf64]
movzx edx, byte [ebp - 0xf66]
jne 0x41e1d2
and dl, byte [ebp - 0xf65]
xor ecx, ecx
cmp dl, 0xff
sete cl
mov dword [esp], ecx
mov dword [esp + 4], str.The_color_table_has_not_been_translated_to_the_old_BITMAPCOREINFO_format_n
call fcn.00401820
mov dword [esp], ebx
mov eax, dword [ebp - 0x1118]
call eax
mov eax, dword [ebp - 0x110c]
sub esp, 4
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_CreateCompatibleDC]
mov dword [ebp - 0x1100], eax
call eax
sub esp, 4
mov dword [ebp - 0x10fc], eax
mov edi, eax
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_SelectObject]
mov dword [esp + 4], esi
mov dword [ebp - 0x1110], eax
call eax
mov dword [ebp - 0x10f0], eax
sub esp, 8
lea eax, [ebp - 0xc64]
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.gdi32.dll_GetDIBColorTable]
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], edi
mov dword [ebp - 0x1120], eax
call eax
sub esp, 0x10
mov ebx, eax
mov eax, 0x24d
call fcn.00401020
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned__d_n
mov dword [esp], eax
call fcn.00401820
mov eax, 0x24e
call fcn.00401020
mov eax, dword [ebp - 0x83c]
cmp dword [ebp - 0xc64], eax
je 0x41fe84
mov eax, 1
movzx edx, byte [ebp - 0xc5d]
xor eax, 1
mov dword [esp + 0x24], edx
movzx edx, byte [ebp - 0xc60]
mov dword [esp + 0x20], edx
movzx edx, byte [ebp - 0xc5f]
mov dword [esp + 0x1c], edx
movzx edx, byte [ebp - 0xc5e]
mov dword [esp + 0x18], edx
movzx edx, byte [ebp - 0xc61]
mov dword [esp + 0x14], edx
movzx edx, byte [ebp - 0xc64]
mov dword [esp + 0x10], edx
movzx edx, byte [ebp - 0xc63]
mov dword [esp + 0xc], edx
movzx edx, byte [ebp - 0xc62]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], str.GetDIBColorTable_returns_table_0:_r_02x_g_02x_b_02x_res_02x_1:_r_02x_g_02x_b_02x_res_02x_n
call fcn.00401820
movzx ebx, byte [ebp - 0x83b]
mov ecx, 0x10ff0000
movzx eax, byte [ebp - 0x83c]
movzx edx, byte [ebp - 0x838]
shl eax, 0x10
shl ebx, 8
or ebx, eax
movzx eax, byte [ebp - 0x83a]
shl edx, 0x10
or ebx, eax
movzx eax, byte [ebp - 0x837]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0x836]
mov dword [esp], ebx
or eax, edx
mov edx, dword [ebp - 0x10fc]
mov edi, eax
mov eax, 0x256
call fcn.00402b30
mov dword [esp], edi
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x10ff0001
mov eax, 0x257
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x10ff0002
mov eax, 0x258
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x1000000
mov eax, 0x259
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x1000001
mov eax, 0x25a
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x1000002
mov eax, 0x25b
call fcn.00402b30
movzx ecx, byte [ebp - 0x83b]
movzx eax, byte [ebp - 0x83c]
shl ecx, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [ebp - 0x83a]
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
or ecx, eax
mov eax, 0x25c
or ecx, 0x2000000
call fcn.00402b30
movzx ecx, byte [ebp - 0x837]
movzx eax, byte [ebp - 0x838]
shl ecx, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [ebp - 0x836]
mov dword [esp], edi
mov edx, dword [ebp - 0x10fc]
or ecx, eax
mov eax, 0x25d
or ecx, 0x2000000
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x2000000
mov eax, 0x25e
call fcn.00402b30
mov dword [esp], ebx
mov ebx, dword [ebp - 0x10fc]
mov ecx, 0x2ffffff
mov eax, 0x25f
mov edx, ebx
call fcn.00402b30
mov dword [esp], edi
mov edx, ebx
mov ecx, 0x2fe0000
mov eax, 0x260
mov edi, ebx
call fcn.00402b30
mov eax, dword [ebp - 0x10f0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1110]
call eax
sub esp, 8
mov dword [esp], esi
mov esi, dword [ebp - 0x1118]
call esi
movzx esi, word [0x49c7fa]
mov byte [ebp - 0x83a], 0xff
movzx eax, word [0x49c7f0]
sub esp, 4
mov byte [ebp - 0x836], 0
mov word [ebp - 0x83c], si
lea esi, [ebp - 0x10ec]
mov word [ebp - 0x838], ax
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x864]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x110c]
mov dword [esp], esi
mov esi, dword [ebp - 0x1114]
call esi
sub esp, 0x18
mov ebx, eax
mov eax, 0x26d
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
mov eax, ebx
call fcn.0041c6f0
mov dword [esp], edi
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x1110]
call eax
sub esp, 8
mov esi, eax
lea eax, [ebp - 0xc64]
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1120]
call eax
sub esp, 0x10
mov edi, eax
mov eax, 0x274
call fcn.00401020
xor eax, eax
cmp edi, 2
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned__d_n
mov dword [esp], eax
call fcn.00401820
mov eax, 0x275
call fcn.00401020
mov eax, dword [ebp - 0x83c]
cmp dword [ebp - 0xc64], eax
je 0x41fe9d
mov eax, 1
movzx edx, byte [ebp - 0xc5d]
xor eax, 1
mov dword [esp + 0x24], edx
movzx edx, byte [ebp - 0xc60]
mov dword [esp + 0x20], edx
movzx edx, byte [ebp - 0xc5f]
mov dword [esp + 0x1c], edx
movzx edx, byte [ebp - 0xc5e]
mov dword [esp + 0x18], edx
movzx edx, byte [ebp - 0xc61]
mov dword [esp + 0x14], edx
movzx edx, byte [ebp - 0xc64]
mov dword [esp + 0x10], edx
movzx edx, byte [ebp - 0xc63]
mov dword [esp + 0xc], edx
movzx edx, byte [ebp - 0xc62]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], str.GetDIBColorTable_returns_table_0:_r_02x_g_02x_b_02x_res_02x_1:_r_02x_g_02x_b_02x_res_02x_n
call fcn.00401820
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x10fc]
mov dword [esp], eax
mov eax, dword [ebp - 0x1110]
call eax
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
mov eax, ebx
sub esp, 8
call fcn.0041c6f0
mov dword [esp], ebx
mov eax, dword [ebp - 0x1118]
call eax
mov eax, 4
mov ecx, 0x10
mov word [ebp - 0x856], ax
sub esp, 4
xor eax, eax
lea esi, [esi]
mov edx, ecx
mov byte [ebp + eax*4 - 0x83a], al
sub edx, eax
mov byte [ebp + eax*4 - 0x83c], 0
mov byte [ebp + eax*4 - 0x83b], dl
add eax, 1
cmp eax, 0x10
jne 0x41e6a0
lea eax, [ebp - 0x10ec]
mov dword [esp + 0x14], 0
mov edi, 8
lea esi, [ebp - 0x63c]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x864]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10fc]
mov dword [esp], eax
mov eax, dword [ebp - 0x1114]
call eax
sub esp, 0x18
mov ebx, eax
mov eax, 0x285
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x286
call fcn.00401020
lea eax, [ebp - 0x10c8]
mov dword [esp + 4], 0x54
mov dword [esp + 8], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x111c]
call eax
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIB_Section_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x287
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu__should_be:__u_n
cmp eax, 0x10
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
mov eax, ebx
call fcn.0041c6f0
mov dword [esp], ebx
mov eax, dword [ebp - 0x1118]
call eax
lea eax, [ebp - 0x83c]
lea ecx, [ebp - 0x440]
xor edx, edx
mov word [ebp - 0x856], di
sub esp, 4
mov dword [ebp - 0x1130], eax
lea esi, [esi]
nop
mov ebx, edx
mov byte [eax + 1], dl
add eax, 4
sub ecx, 4
not ebx
mov byte [eax - 4], 0
mov byte [eax - 2], bl
mov byte [ecx + 5], dl
add edx, 2
mov byte [ecx + 6], 0
mov byte [ecx + 4], bl
cmp eax, esi
jne 0x41e7e8
lea eax, [ebp - 0x10ec]
mov dword [esp + 0x14], 0
lea ebx, [ebp - 0x83c]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x864]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x10fc]
mov dword [esp], esi
mov eax, dword [ebp - 0x1114]
call eax
sub esp, 0x18
mov edi, eax
mov eax, 0x297
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x298
call fcn.00401020
lea eax, [ebp - 0x10c8]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 0x54
mov eax, dword [ebp - 0x111c]
call eax
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIB_Section_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x299
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 0xc], 0x100
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu__should_be:__u_n
cmp eax, 0x100
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov dword [ebp - 0x10fc], esi
mov dword [esp], esi
mov eax, dword [ebp - 0x1110]
xor esi, esi
call eax
mov dword [ebp - 0x10f0], edi
mov edi, dword [ebp - 0x10fc]
mov dword [ebp - 0x10f4], eax
sub esp, 8
lea esi, [esi]
nop
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx]
mov ecx, esi
add esi, 1
or ecx, 0x10ff0000
add ebx, 4
shl edx, 0x10
shl eax, 8
or eax, edx
movzx edx, byte [ebx - 2]
or eax, edx
mov edx, edi
mov dword [esp], eax
mov eax, 0x29f
call fcn.00402b30
movzx eax, byte [ebx - 3]
movzx edx, byte [ebx - 4]
shl eax, 8
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx - 2]
or eax, edx
mov edx, edi
mov dword [esp], eax
mov ecx, eax
mov eax, 0x2a0
or ecx, 0x2000000
call fcn.00402b30
cmp esi, 0x100
jne 0x41e920
mov eax, dword [ebp - 0x10f4]
mov edi, dword [ebp - 0x10f0]
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x10fc]
mov dword [esp], esi
mov eax, dword [ebp - 0x1110]
call eax
mov edx, dword [ebp - 0x10ec]
lea ecx, [ebp - 0x864]
mov eax, edi
sub esp, 8
call fcn.0041c6f0
mov dword [esp], edi
mov edi, dword [ebp - 0x1118]
call edi
mov ecx, 1
xor eax, eax
lea edi, [ebp - 0x438]
mov word [ebp - 0x856], cx
mov ecx, 0x102
sub esp, 4
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x438], 0x20300
mov byte [ebp - 0x434], 0xff
mov byte [ebp - 0x432], 0xff
mov byte [ebp - 0x42f], 0xff
mov dword [ebp - 0x83c], 0x10000
mov dword [esp], ecx
mov ecx, dword [sym.imp.gdi32.dll_CreatePalette]
mov dword [ebp - 0x112c], ecx
call ecx
sub esp, 4
mov edi, eax
mov eax, 0x2b6
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.CreatePalette_failed_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 8], 1
mov dword [ebp - 0x10f0], edi
mov dword [esp + 4], edi
mov edi, dword [sym.imp.gdi32.dll_SelectPalette]
mov edx, dword [ebp - 0x110c]
mov dword [esp], edx
mov dword [ebp - 0x1104], edi
call edi
lea edx, [ebp - 0x10ec]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x864]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x110c]
mov dword [esp], edx
mov ecx, dword [ebp - 0x1114]
call ecx
sub esp, 0x18
mov edi, eax
mov eax, 0x2b9
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x2ba
call fcn.00401020
lea edx, [ebp - 0x10c8]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 4], 0x54
mov edx, dword [ebp - 0x111c]
call edx
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIB_Section_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x2bb
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 0xc], 2
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu__should_be:__u_n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], ebx
mov dword [esp + 8], 1
mov edx, dword [ebp - 0x110c]
mov dword [esp], edx
mov ecx, dword [ebp - 0x1104]
call ecx
sub esp, 0xc
mov dword [esp + 4], edi
mov dword [esp], esi
mov ebx, dword [ebp - 0x1110]
call ebx
lea ebx, [ebp - 0xc64]
sub esp, 8
mov dword [ebp - 0x10f4], eax
mov dword [esp + 8], 1
mov edx, dword [ebp - 0x10f0]
mov dword [esp], esi
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x1104]
call ecx
sub esp, 0xc
mov dword [ebp - 0x10f8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [ebp - 0x10fc], esi
mov dword [esp], esi
mov ebx, dword [ebp - 0x1120]
call ebx
sub esp, 0x10
mov ebx, eax
mov eax, 0x2c5
call fcn.00401020
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned__d_n
mov dword [esp], eax
call fcn.00401820
mov eax, 0x2c6
call fcn.00401020
movzx ecx, byte [ebp - 0xc5d]
movzx esi, byte [ebp - 0xc64]
movzx eax, byte [ebp - 0xc63]
movzx edx, byte [ebp - 0xc62]
movzx ebx, byte [ebp - 0xc5f]
mov dword [esp + 0x24], ecx
movzx ecx, byte [ebp - 0xc60]
mov dword [esp + 0x20], ecx
movzx ecx, bl
and ebx, esi
mov dword [esp + 0x1c], ecx
movzx ecx, byte [ebp - 0xc5e]
and ebx, edx
cmp bl, 0xff
mov dword [esp + 0x18], ecx
movzx ecx, byte [ebp - 0xc61]
mov dword [esp + 4], str.GetDIBColorTable_returns_table_0:_r_02x_g_02x_b_02x_res_02x_1:_r_02x_g_02x_b_02x_res_02x_n
mov dword [esp + 0x14], ecx
mov ecx, esi
movzx ecx, cl
mov dword [esp + 0x10], ecx
movzx ecx, al
mov dword [esp + 0xc], ecx
movzx ecx, dl
sete dl
mov dword [esp + 8], ecx
movzx ecx, byte [ebp - 0xc60]
or cl, byte [ebp - 0xc5e]
or cl, al
sete al
movzx eax, al
and eax, edx
mov dword [esp], eax
call fcn.00401820
movzx ebx, byte [ebp - 0x433]
mov ecx, 0x10ff0000
movzx eax, byte [ebp - 0x432]
movzx edx, byte [ebp - 0x42e]
shl eax, 0x10
shl ebx, 8
or ebx, eax
movzx eax, byte [ebp - 0x434]
shl edx, 0x10
or ebx, eax
movzx eax, byte [ebp - 0x42f]
shl eax, 8
or eax, edx
movzx edx, byte [ebp - 0x430]
mov dword [esp], ebx
mov esi, eax
mov eax, 0x2cf
or esi, edx
mov edx, dword [ebp - 0x10fc]
call fcn.00402b30
mov dword [esp], esi
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x10ff0001
mov eax, 0x2d0
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x10ff0002
mov eax, 0x2d1
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x1000000
mov eax, 0x2d2
call fcn.00402b30
mov dword [esp], esi
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x1000001
mov eax, 0x2d3
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x1000002
mov eax, 0x2d4
call fcn.00402b30
movzx ecx, byte [ebp - 0x433]
movzx eax, byte [ebp - 0x432]
shl ecx, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [ebp - 0x434]
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
or ecx, eax
mov eax, 0x2d5
or ecx, 0x2000000
call fcn.00402b30
movzx ecx, byte [ebp - 0x42f]
movzx eax, byte [ebp - 0x42e]
shl ecx, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [ebp - 0x430]
mov dword [esp], esi
mov edx, dword [ebp - 0x10fc]
or ecx, eax
mov eax, 0x2d6
or ecx, 0x2000000
call fcn.00402b30
mov dword [esp], esi
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x2000000
mov eax, 0x2d7
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x2ffffff
mov eax, 0x2d8
call fcn.00402b30
mov dword [esp], ebx
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x2fe0000
mov eax, 0x2d9
call fcn.00402b30
mov dword [esp], esi
mov edx, dword [ebp - 0x10fc]
mov ecx, 0x2000100
mov eax, 0x2da
call fcn.00402b30
mov dword [esp], esi
mov esi, dword [ebp - 0x10fc]
mov ecx, 0x23f003f
mov eax, 0x2db
mov edx, esi
call fcn.00402b30
mov dword [esp], ebx
mov edx, esi
mov ecx, 0x2400040
mov dword [ebp - 0x10fc], esi
mov eax, 0x2dc
mov ebx, 0x20
call fcn.00402b30
mov eax, dword [ebp - 0x10ec]
movzx esi, word [0x49c7fa]
mov byte [eax + 1], 0xff
mov eax, dword [ebp - 0x10ec]
mov byte [eax], 0xff
mov edx, dword [ebp - 0x10ec]
mov eax, edi
mov word [edx + 0x34], si
lea esi, [ebp - 0x864]
mov ecx, esi
lea esi, [ebp - 0x10e8]
call fcn.0041c6f0
mov word [ebp - 0x856], bx
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x864]
mov dword [esp + 4], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov ebx, dword [ebp - 0x1114]
call ebx
sub esp, 0x18
mov ebx, eax
mov eax, 0x2e7
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov esi, dword [ebp - 0x110c]
mov dword [esp], esi
mov esi, dword [ebp - 0x1100]
call esi
sub esp, 4
mov dword [esp + 4], ebx
mov dword [ebp - 0x1124], eax
mov dword [esp], eax
mov ecx, dword [ebp - 0x1110]
call ecx
sub esp, 8
mov esi, eax
mov dword [esp + 0x20], 0xcc0020
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov ecx, dword [ebp - 0x10fc]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov edx, dword [ebp - 0x1124]
mov dword [esp], edx
call dword [sym.imp.gdi32.dll_BitBlt]
mov eax, 0x2ed
sub esp, 0x24
call fcn.00401020
mov eax, dword [ebp - 0x10e8]
mov eax, dword [eax]
mov dword [esp + 4], str.lower_left_pixel_is__08lx_n
cmp eax, 0xff00
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x2ee
call fcn.00401020
mov eax, dword [ebp - 0x10e8]
mov eax, dword [eax + 0x44]
mov dword [esp + 4], str.bottom_but_one__left_pixel_is__08lx_n
cmp eax, 0xff00ff
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x1124]
mov dword [esp], esi
lea esi, [ebp - 0x864]
mov edx, dword [ebp - 0x1110]
call edx
mov edx, dword [ebp - 0x10e8]
mov ecx, esi
mov eax, ebx
sub esp, 8
call fcn.0041c6f0
mov dword [esp], ebx
mov ebx, dword [ebp - 0x1118]
call ebx
mov esi, dword [ebp - 0x10f4]
sub esp, 4
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x10fc]
mov dword [esp], esi
mov edx, dword [ebp - 0x1110]
call edx
sub esp, 8
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x10f8]
mov dword [esp], esi
mov esi, 8
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x1104]
call ecx
sub esp, 0xc
mov dword [esp], edi
lea edi, [ebp - 0x438]
call ebx
mov edx, dword [ebp - 0x10f0]
sub esp, 4
mov dword [esp], edx
call ebx
xor eax, eax
mov ecx, 0x102
lea ebx, [ebp - 0x434]
rep stosd dword es:[edi], eax
mov word [ebp - 0x856], si
sub esp, 4
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x438], 0x1000300
mov eax, ebx
xor edx, edx
mov edi, ebx
lea esi, [ebp - 0x234]
lea esi, [esi]
mov ebx, edx
mov byte [eax + 2], dl
add eax, 4
sub ecx, 4
not ebx
mov byte [eax - 3], 0
mov byte [eax - 4], bl
mov byte [ecx + 5], dl
add edx, 2
mov byte [ecx + 4], 0
mov byte [ecx + 6], bl
cmp eax, esi
jne 0x41f0d0
mov ebx, edi
xor eax, eax
lea esi, [esi]
mov word [ebp + eax*2 - 0x83c], ax
add eax, 1
cmp eax, 0x100
jne 0x41f100
lea eax, [ebp - 0x438]
mov dword [esp], eax
mov eax, dword [ebp - 0x112c]
call eax
sub esp, 4
mov edi, eax
mov eax, 0x30f
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.CreatePalette_failed_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 8], 1
mov dword [ebp - 0x1108], edi
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x110c]
mov dword [esp], edi
mov esi, dword [ebp - 0x1104]
call esi
lea ecx, [ebp - 0x10ec]
sub esp, 0xc
mov esi, eax
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x864]
mov dword [esp + 4], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [ebp - 0x110c], edi
mov dword [esp], edi
mov edx, dword [ebp - 0x1114]
call edx
sub esp, 0x18
mov edi, eax
mov eax, 0x312
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x313
call fcn.00401020
lea edx, [ebp - 0x10c8]
mov dword [esp + 4], 0x54
mov dword [esp + 8], edx
mov dword [esp], edi
mov edx, dword [ebp - 0x111c]
call edx
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIB_Section_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x314
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 0xc], 0x100
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu__should_be:__u_n
cmp eax, 0x100
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
lea edx, [ebp - 0x864]
mov eax, edi
mov ecx, edx
mov edx, dword [ebp - 0x10ec]
call fcn.0041c6f0
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov ecx, dword [ebp - 0x110c]
mov dword [esp], ecx
mov esi, dword [ebp - 0x1104]
call esi
sub esp, 0xc
mov dword [esp + 4], edi
mov ecx, dword [ebp - 0x10fc]
mov dword [esp], ecx
mov edx, dword [ebp - 0x1110]
call edx
sub esp, 8
mov dword [ebp - 0x1134], eax
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x1108]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x10fc]
mov dword [esp], ecx
call esi
mov dword [ebp - 0x1138], eax
sub esp, 0xc
lea eax, [ebp - 0xc64]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x10fc]
mov dword [esp], ecx
mov eax, dword [ebp - 0x1120]
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x31d
call fcn.00401020
xor eax, eax
cmp esi, 0x100
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned__d_n
xor esi, esi
mov dword [esp], eax
call fcn.00401820
mov dword [ebp - 0x1140], ebx
mov dword [ebp - 0x1144], edi
jmp 0x41f36f
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ecx
mov eax, dword [ebp - 0x10f8]
mov dword [esp + 8], esi
add esi, 1
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetDIBColorTable_returns_table__d:_r_02x_g_02x_b_02x_res_02x_n
mov eax, dword [ebp - 0x10f0]
mov dword [esp], eax
call fcn.00401820
cmp esi, 0x100
je 0x41f3fd
call fcn.00492bc0
mov dword [ebp - 0x10f0], 0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x31f
movzx eax, byte [ebp + esi*4 - 0xc62]
movzx ecx, byte [ebp + esi*4 - 0xc63]
movzx edi, byte [ebp + esi*4 - 0xc61]
mov byte [ebp - 0x10f4], al
movzx ebx, byte [ebp + esi*4 - 0xc64]
mov dword [ebp - 0x10f8], eax
movzx eax, byte [ebp - 0x10f4]
mov byte [ebp - 0x1100], cl
cmp al, byte [ebp + esi*4 - 0x434]
jne 0x41f330
cmp bl, byte [ebp + esi*4 - 0x432]
jne 0x41f330
movzx eax, byte [ebp - 0x1100]
cmp byte [ebp + esi*4 - 0x433], al
sete al
movzx eax, al
mov dword [ebp - 0x10f0], eax
jmp 0x41f330
mov edi, dword [ebp - 0x1144]
mov ebx, dword [ebp - 0x1140]
xor esi, esi
mov dword [ebp - 0x10f0], edi
mov edi, dword [ebp - 0x10fc]
lea esi, [esi]
nop
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
mov ecx, esi
add ebx, 4
or ecx, 0x10ff0000
shl edx, 0x10
shl eax, 8
or eax, edx
movzx edx, byte [ebx - 4]
or eax, edx
mov edx, edi
mov dword [esp], eax
mov eax, 0x327
call fcn.00402b30
movzx eax, byte [ebx - 3]
movzx edx, byte [ebx - 2]
mov ecx, esi
or ecx, 0x1000000
add esi, 1
shl edx, 0x10
shl eax, 8
or eax, edx
movzx edx, byte [ebx - 4]
or eax, edx
mov edx, edi
mov dword [esp], eax
mov eax, 0x328
call fcn.00402b30
movzx eax, byte [ebx - 3]
movzx edx, byte [ebx - 2]
shl eax, 8
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx - 4]
or eax, edx
mov edx, edi
mov dword [esp], eax
mov ecx, eax
mov eax, 0x329
or ecx, 0x2000000
call fcn.00402b30
cmp esi, 0x100
jne 0x41f420
mov edi, dword [ebp - 0x10f0]
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x1138]
mov dword [esp + 4], eax
mov ebx, dword [ebp - 0x10fc]
mov dword [esp], ebx
mov eax, dword [ebp - 0x1104]
call eax
mov ecx, dword [ebp - 0x1134]
sub esp, 0xc
mov dword [esp + 4], ecx
mov dword [ebp - 0x10fc], ebx
mov dword [esp], ebx
mov ecx, dword [ebp - 0x1110]
call ecx
sub esp, 8
mov dword [esp], edi
mov edi, dword [ebp - 0x1118]
call edi
mov edx, dword [ebp - 0x1108]
sub esp, 4
mov dword [esp], edx
call edi
mov edx, 0x25
lea edi, [ebp - 0x438]
sub esp, 4
mov word [ebp - 0x436], dx
mov dword [esp], edi
mov edi, dword [ebp - 0x112c]
call edi
sub esp, 4
mov edi, eax
mov dword [ebp - 0x1134], eax
mov eax, 0x334
call fcn.00401020
xor eax, eax
test edi, edi
mov dword [esp + 4], str.CreatePalette_failed_n
setne al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov dword [esp + 8], 1
mov ebx, dword [ebp - 0x110c]
mov dword [esp], ebx
mov eax, dword [ebp - 0x1104]
call eax
lea edx, [ebp - 0x10ec]
mov dword [ebp - 0x844], 0x8e
sub esp, 0xc
mov edi, eax
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x864]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [ebp - 0x110c], ebx
mov dword [esp], ebx
mov edx, dword [ebp - 0x1114]
call edx
sub esp, 0x18
mov ebx, eax
mov dword [ebp - 0x112c], eax
mov eax, 0x338
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x339
call fcn.00401020
lea edx, [ebp - 0x10c8]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], 0x54
mov edx, dword [ebp - 0x111c]
call edx
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIB_Section_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x33a
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 0xc], 0x100
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu__should_be:__u_n
cmp eax, 0x100
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
lea edx, [ebp - 0x864]
mov eax, ebx
mov ecx, edx
mov edx, dword [ebp - 0x10ec]
call fcn.0041c6f0
mov dword [esp + 4], edi
lea edi, [ebp - 0xc64]
mov dword [esp + 8], 1
mov ecx, dword [ebp - 0x110c]
mov dword [esp], ecx
mov eax, dword [ebp - 0x1104]
call eax
sub esp, 0xc
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x10fc]
mov dword [esp], ebx
mov ecx, dword [ebp - 0x1110]
call ecx
mov ecx, esi
mov dword [ebp - 0x1138], eax
mov eax, 0xcccccccc
sub esp, 8
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xc64]
mov dword [esp], ebx
lea edi, [ebp - 0xc64]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1120]
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x343
call fcn.00401020
xor eax, eax
cmp esi, 0x100
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned__d_n
xor ebx, ebx
mov dword [esp], eax
call fcn.00401820
jmp 0x41f82f
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x348
movzx eax, byte [edi + 3]
mov dword [ebp - 0x10f4], eax
movzx eax, byte [edi]
mov dword [ebp - 0x10f8], eax
mov ecx, eax
movzx eax, byte [edi + 1]
mov byte [ebp - 0x1108], al
mov dword [ebp - 0x1100], eax
movzx eax, byte [edi + 2]
mov dword [ebp - 0x1104], eax
mov eax, 0xdd67c8a7
imul ebx
mov eax, ebx
sar eax, 0x1f
add edx, ebx
sar edx, 5
sub edx, eax
lea eax, [edx + edx*8]
lea edx, [edx + eax*4]
mov eax, ebx
sub eax, edx
lea esi, [ebp + eax*4 - 0x434]
xor eax, eax
movzx edx, byte [esi]
cmp byte [edi + 2], dl
je 0x41fe40
mov ecx, dword [ebp - 0x10f4]
add edi, 4
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0x10f8]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp - 0x1100]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0x1104]
mov dword [esp + 8], ebx
add ebx, 1
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], str.GetDIBColorTable_returns_table__d:_r__02x_g__02x_b__02x_res_02x_n
call fcn.00401820
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
movzx edx, byte [esi]
shl ecx, 0x10
shl eax, 8
or eax, ecx
or eax, edx
mov dword [esp], eax
mov ecx, dword [ebp - 0x10f0]
mov eax, 0x34d
mov edx, dword [ebp - 0x10fc]
call fcn.00402b30
cmp ebx, 0x100
je 0x41f8cf
mov eax, ebx
or eax, 0x10ff0000
mov dword [ebp - 0x10f0], eax
cmp ebx, dword [ebp - 0x844]
jb 0x41f740
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x352
movzx ecx, byte [edi + 1]
movzx eax, byte [edi]
movzx esi, byte [edi + 3]
movzx edx, byte [edi + 2]
mov dword [esp + 8], ebx
mov dword [esp + 0x18], esi
movzx esi, al
or eax, ecx
or al, dl
mov dword [esp + 0x14], esi
movzx esi, cl
sete al
mov dword [esp + 0x10], esi
movzx esi, dl
add ebx, 1
movzx eax, al
mov dword [esp + 0xc], esi
add edi, 4
mov dword [esp], eax
mov dword [esp + 4], str.GetDIBColorTable_returns_table__d:_r__02x_g__02x_b__02x_res_02x_n
call fcn.00401820
mov dword [esp], 0
mov ecx, dword [ebp - 0x10f0]
mov eax, 0x355
mov edx, dword [ebp - 0x10fc]
call fcn.00402b30
cmp ebx, 0x100
jne 0x41f82f
mov eax, 0xcccccccc
mov ecx, ebx
lea edi, [ebp - 0x83c]
mov dword [ebp - 0x844], 0xad
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x864]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x112c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x110c]
mov dword [esp], eax
mov eax, dword [ebp - 0x1128]
call eax
mov eax, 0x35b
sub esp, 0x1c
call fcn.00401020
mov eax, dword [ebp - 0x844]
mov dword [esp + 4], str.wrong_colors__lu_n
test eax, eax
mov dword [esp + 8], eax
sete al
xor esi, esi
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov ebx, dword [ebp - 0x1130]
lea esi, [esi]
cmp esi, 0x8d
jg 0x41fa37
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x35f
movzx eax, byte [ebx + 3]
mov dword [ebp - 0x10f0], 0
movzx edi, byte [ebx + 2]
mov dword [ebp - 0x10f4], eax
movzx eax, byte [ebx]
mov dword [ebp - 0x10f8], eax
mov ecx, eax
movzx eax, byte [ebx + 1]
mov byte [ebp - 0x1104], al
mov dword [ebp - 0x1100], eax
mov eax, 0xdd67c8a7
imul esi
mov eax, esi
sar eax, 0x1f
add edx, esi
sar edx, 5
sub edx, eax
lea eax, [edx + edx*8]
lea edx, [edx + eax*4]
mov eax, esi
sub eax, edx
lea eax, [ebp + eax*4 - 0x434]
movzx edx, byte [eax]
cmp byte [ebx + 2], dl
je 0x41fe60
mov eax, dword [ebp - 0x10f4]
add ebx, 4
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x10f8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x1100]
mov dword [esp + 8], esi
add esi, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.GetDIBits_returns_table__d:_r__02x_g__02x_b__02x_res_02x_n
mov eax, dword [ebp - 0x10f0]
mov dword [esp], eax
call fcn.00401820
cmp esi, 0x8d
jle 0x41f974
call fcn.00492bc0
mov dword [eax], 0x499014
mov dword [eax + 4], 0x365
movzx eax, byte [ebx]
movzx ecx, byte [ebx + 1]
movzx edi, byte [ebx + 3]
movzx edx, byte [ebx + 2]
mov dword [esp + 8], esi
mov dword [esp + 0x18], edi
movzx edi, al
or eax, ecx
or al, dl
mov dword [esp + 0x14], edi
movzx edi, cl
sete al
mov dword [esp + 0x10], edi
movzx edi, dl
add esi, 1
movzx eax, al
mov dword [esp + 0xc], edi
add ebx, 4
mov dword [esp + 4], str.GetDIBits_returns_table__d:_r__02x_g__02x_b__02x_res_02x_n
mov dword [esp], eax
call fcn.00401820
cmp esi, 0x100
jne 0x41f968
mov dword [ebp - 0xc64], 0x7b010203
lea eax, [ebp - 0xc64]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x10fc]
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_SetDIBColorTable]
sub esp, 0x10
mov esi, eax
mov eax, 0x36f
call fcn.00401020
xor eax, eax
cmp esi, 1
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.SetDIBColorTable_returned_unexpected_result__u_n
mov dword [esp], eax
call fcn.00401820
mov eax, 0x370
call fcn.00401020
movzx edx, byte [ebp - 0xc61]
mov dword [esp + 4], str.Expected_rgbReserved__123__got__u_n
cmp dl, 0x7b
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
lea eax, [ebp - 0xc64]
mov dword [ebp - 0xc64], 0xffffffff
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1120]
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x374
call fcn.00401020
xor eax, eax
cmp esi, 1
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned_unexpected_result__u_n
mov dword [esp], eax
call fcn.00401820
mov eax, 0x375
call fcn.00401020
movzx edx, byte [ebp - 0xc62]
mov dword [esp + 4], str.Expected_rgbRed__1__got__u_n
cmp dl, 1
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x376
call fcn.00401020
movzx edx, byte [ebp - 0xc63]
mov dword [esp + 4], str.Expected_rgbGreen__2__got__u_n
cmp dl, 2
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x377
call fcn.00401020
movzx edx, byte [ebp - 0xc64]
mov dword [esp + 4], str.Expected_rgbBlue__3__got__u_n
cmp dl, 3
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x378
call fcn.00401020
movzx edx, byte [ebp - 0xc61]
mov dword [esp + 4], str.Expected_rgbReserved__0__got__u_n
test dl, dl
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov esi, dword [ebp - 0x1138]
mov dword [esp], edi
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x1110]
call eax
mov esi, dword [ebp - 0x112c]
sub esp, 8
mov dword [esp], esi
mov esi, dword [ebp - 0x1118]
call esi
mov ebx, dword [ebp - 0x1134]
sub esp, 4
mov dword [esp], ebx
lea ebx, [ebp - 0x10ec]
mov dword [ebp - 0x1118], esi
call esi
mov eax, 0x10
mov esi, edi
mov dword [ebp - 0x844], 0x25
sub esp, 4
mov word [ebp - 0x856], ax
mov dword [esp + 0xc], ebx
lea ebx, [ebp - 0x864]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x110c]
mov dword [esp], ebx
mov edx, dword [ebp - 0x1114]
call edx
sub esp, 0x18
mov ebx, eax
mov eax, 0x382
call fcn.00401020
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x49b297
setne al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x383
call fcn.00401020
lea edx, [ebp - 0x10c8]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], 0x54
mov edx, dword [ebp - 0x111c]
call edx
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetObject_failed_for_DIB_Section_n
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov eax, 0x384
call fcn.00401020
mov eax, dword [ebp - 0x1090]
mov dword [esp + 4], str.created_DIBSection:_wrong_biClrUsed_field:__lu_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], ebx
mov dword [esp], edi
mov eax, dword [ebp - 0x1110]
call eax
lea edx, [ebp - 0xc64]
sub esp, 8
mov edi, eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0
mov dword [ebp - 0x10fc], esi
mov dword [esp], esi
mov ecx, dword [ebp - 0x1120]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x387
call fcn.00401020
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.GetDIBColorTable_returned__d_n
mov dword [esp], eax
call fcn.00401820
mov dword [esp + 4], edi
mov esi, dword [ebp - 0x10fc]
mov dword [esp], esi
mov eax, dword [ebp - 0x1110]
call eax
sub esp, 8
mov dword [esp], ebx
mov eax, dword [ebp - 0x1118]
call eax
mov ebx, dword [sym.imp.gdi32.dll_DeleteDC]
sub esp, 4
mov dword [esp], esi
call ebx
mov eax, dword [ebp - 0x1124]
sub esp, 4
mov dword [esp], eax
call ebx
mov ebx, dword [ebp - 0x110c]
sub esp, 4
mov dword [esp + 4], ebx
mov dword [esp], 0
mov eax, dword [ebp - 0x113c]
call eax
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp cl, byte [esi + 2]
jne 0x41f7b3
movzx eax, byte [ebp - 0x1108]
cmp byte [esi + 1], al
sete al
movzx eax, al
jmp 0x41f7b3
cmp cl, byte [eax + 2]
jne 0x41f9e9
movzx ecx, byte [ebp - 0x1104]
cmp byte [eax + 1], cl
sete al
movzx eax, al
mov dword [ebp - 0x10f0], eax
jmp 0x41f9e9
mov eax, dword [ebp - 0x838]
cmp dword [ebp - 0xc60], eax
jne 0x41e29f
xor eax, eax
jmp 0x41e2a4
mov eax, dword [ebp - 0x838]
cmp dword [ebp - 0xc60], eax
jne 0x41e5dd
xor eax, eax
jmp 0x41e5e2
mov eax, 0x1aa
call fcn.00401020
mov eax, dword [ebp - 0x10e8]
mov dword [esp + 4], str.only_wrote__lu_bytes_n
cmp eax, 0x2000
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401820
jmp 0x41da57
mov edx, dword [ebp - 0x10ec]
xor eax, eax
test edx, edx
sete al
jmp 0x41d28d