Function at 0x401700
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x40d538
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x74
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x64]
call sub.MFC42.DLL_CDC::CDC
xor ebx, ebx
mov dword [esp + 0x34], 0x40e8cc
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x38], ebx
push 0x82
push 2
push 0x82
mov byte [esp + 0x98], 1
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
push eax
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CGdiObject::Attach
mov ebp, dword [esp + 0x94]
cmp ebp, ebx
jne 0x401775
xor eax, eax
jmp 0x401778
mov eax, dword [ebp + 4]
mov esi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
call esi
push eax
lea ecx, [esp + 0x68]
call sub.MFC42.DLL_CDC::Attach
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x34]
neg eax
sbb eax, eax
and eax, ecx
push eax
mov eax, dword [esp + 0x6c]
push eax
call sub.MFC42.DLL_CDC::SelectGdiObject
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CDC::CDC
lea ecx, [esp + 0x74]
mov byte [esp + 0x8c], 2
call sub.MFC42.DLL_CDC::CDC
cmp ebp, ebx
mov byte [esp + 0x8c], 3
jne 0x4017ce
xor eax, eax
jmp 0x4017d1
mov eax, dword [ebp + 4]
push eax
call esi
push eax
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CDC::Attach
cmp ebp, ebx
jne 0x4017e6
xor eax, eax
jmp 0x4017e9
mov eax, dword [ebp + 4]
push eax
call esi
push eax
lea ecx, [esp + 0x78]
call sub.MFC42.DLL_CDC::Attach
mov eax, 0x40e8cc
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 4]
mov esi, dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push 0x168
push 0x168
push ecx
mov byte [esp + 0x98], 5
call esi
push eax
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CGdiObject::Attach
mov eax, 0x168
cdq
idiv dword [edi + 0x7c]
mov edx, dword [ebp + 4]
push eax
push eax
push edx
call esi
push eax
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CGdiObject::Attach
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x44]
neg eax
sbb eax, eax
and eax, esi
push eax
mov eax, dword [esp + 0x5c]
push eax
call sub.MFC42.DLL_CDC::SelectGdiObject
mov edx, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0x3c]
neg eax
sbb eax, eax
and eax, edx
push eax
push ecx
call sub.MFC42.DLL_CDC::SelectGdiObject
xor ecx, ecx
lea ebx, [edi + 0x64]
push ecx
mov dword [esp + 0x24], ebx
sub esp, 0x10
mov dword [esp + 0x3c], eax
mov ebx, esp
xor eax, eax
mov edx, 0x168
mov dword [ebx], eax
mov esi, edx
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 8], edx
lea edx, [esp + 0x68]
push edx
mov dword [ebx + 0xc], esi
call fcn.00403940
mov eax, dword [edi + 0x84]
test eax, eax
je 0x401a81
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0x40e8b8
mov ebx, dword [sym.imp.GDI32.dll_CreatePen]
push 0x606060
push 1
push 0
mov byte [esp + 0x98], 6
call ebx
push eax
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x54]
push eax
call sub.MFC42.DLL_CDC::SelectObject
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x40199a
mov esi, 1
mov eax, 0x168
cdq
idiv ecx
lea ecx, [esp + 0x10]
imul eax, esi
dec eax
push eax
push 0
push ecx
lea ecx, [esp + 0x60]
call sub.MFC42.DLL_CDC::MoveTo
mov eax, 0x168
lea ecx, [esp + 0x54]
cdq
idiv dword [edi + 0x7c]
imul eax, esi
dec eax
push eax
push 0x167
call sub.MFC42.DLL_CDC::LineTo
mov eax, 0x168
push 0
cdq
idiv dword [edi + 0x7c]
lea edx, [esp + 0x50]
lea ecx, [esp + 0x58]
imul eax, esi
dec eax
push eax
push edx
call sub.MFC42.DLL_CDC::MoveTo
mov eax, 0x168
push 0x167
cdq
idiv dword [edi + 0x7c]
lea ecx, [esp + 0x58]
imul eax, esi
dec eax
push eax
call sub.MFC42.DLL_CDC::LineTo
mov ecx, dword [edi + 0x7c]
inc esi
lea eax, [esi - 1]
cmp eax, ecx
jl 0x40191c
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CDC::SelectObject
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CGdiObject::DeleteObject
push 0xf0f0f0
push 1
push 0
call ebx
push eax
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x54]
push edx
call sub.MFC42.DLL_CDC::SelectObject
mov ecx, dword [edi + 0x7c]
xor esi, esi
test ecx, ecx
mov ebx, eax
jle 0x401a56
mov eax, 0x168
cdq
idiv ecx
lea ecx, [esp + 0x54]
imul eax, esi
push eax
lea eax, [esp + 0x50]
push 0
push eax
call sub.MFC42.DLL_CDC::MoveTo
mov eax, 0x168
lea ecx, [esp + 0x54]
cdq
idiv dword [edi + 0x7c]
imul eax, esi
push eax
push 0x167
call sub.MFC42.DLL_CDC::LineTo
mov eax, 0x168
push 0
cdq
idiv dword [edi + 0x7c]
lea ecx, [esp + 0x1c]
imul eax, esi
push eax
push ecx
lea ecx, [esp + 0x60]
call sub.MFC42.DLL_CDC::MoveTo
mov eax, 0x168
push 0x167
cdq
idiv dword [edi + 0x7c]
lea ecx, [esp + 0x58]
imul eax, esi
push eax
call sub.MFC42.DLL_CDC::LineTo
mov ecx, dword [edi + 0x7c]
inc esi
cmp esi, ecx
jl 0x4019df
push ebx
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CDC::SelectObject
mov dword [esp + 0x2c], 0x40e8a4
lea ecx, [esp + 0x2c]
mov byte [esp + 0x8c], 7
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov byte [esp + 0x8c], 5
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
lea eax, [esp + 0x34]
neg eax
sbb eax, eax
and eax, ecx
push eax
push edx
call sub.MFC42.DLL_CDC::SelectGdiObject
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x7c]
test eax, eax
mov dword [esp + 0x18], 0
jle 0x401ba5
test eax, eax
mov dword [esp + 0x10], 0
jle 0x401b91
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ecx, [edi + 0x6c]
call fcn.00403c10
mov esi, dword [edi + 0x7c]
mov ebx, eax
mov edx, esi
imul edx, esi
dec edx
cmp ebx, edx
je 0x401b7d
mov eax, 0xfffffe98
push 0xcc0020
cdq
idiv esi
push 0
push 0
mov ebp, eax
mov eax, ebx
cdq
idiv esi
mov ecx, eax
mov eax, ebx
cdq
imul ecx, ebp
idiv esi
mov esi, dword [esp + 0x64]
lea eax, [esp + 0x60]
mov ebx, dword [sym.imp.GDI32.dll_BitBlt]
imul edx, ebp
neg eax
sbb eax, eax
and eax, esi
push eax
mov eax, dword [esp + 0x88]
push 0x168
push 0x168
push ecx
push edx
push eax
call ebx
mov eax, 0x168
mov ebp, dword [esp + 0x78]
cdq
idiv dword [edi + 0x7c]
lea ecx, [esp + 0x74]
push 0xcc0020
push 0
push 0
mov edx, eax
mov esi, eax
imul edx, dword [esp + 0x1c]
imul esi, dword [esp + 0x24]
add edx, 2
add esi, 2
neg ecx
sbb ecx, ecx
and ecx, ebp
push ecx
mov ecx, dword [esp + 0x78]
push eax
push eax
push edx
push esi
push ecx
call ebx
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x7c]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x401ac1
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x7c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x401ab1
mov edi, dword [esp + 0x68]
lea eax, [esp + 0x64]
neg eax
mov edx, dword [ebp + 4]
push 0xcc0020
sbb eax, eax
push 0
and eax, edi
mov edi, dword [sym.imp.GDI32.dll_BitBlt]
push 0
push eax
push 0x16c
push 0x16c
push 0xa
push 0xa
push edx
call edi
xor ecx, ecx
xor eax, eax
push ecx
mov edx, 0x96
sub esp, 0x10
mov esi, edx
mov ebx, esp
mov dword [ebx], eax
lea eax, [esp + 0x68]
push eax
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], esi
call fcn.00403940
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x54]
neg eax
mov ecx, dword [ebp + 4]
push 0xcc0020
sbb eax, eax
push 0
and eax, edx
push 0
push eax
push esi
push esi
push 0x2d
push 0x189
push ecx
call edi
push 0x2c
lea edx, [esp + 0x50]
push 0x188
push edx
mov ecx, ebp
call sub.MFC42.DLL_CDC::MoveTo
push 0xc2
push 0x188
mov ecx, ebp
call sub.MFC42.DLL_CDC::LineTo
push 0xc2
push 0x21e
mov ecx, ebp
call sub.MFC42.DLL_CDC::LineTo
push 0x2c
push 0x21e
mov ecx, ebp
call sub.MFC42.DLL_CDC::LineTo
push 0x2c
push 0x188
mov ecx, ebp
call sub.MFC42.DLL_CDC::LineTo
mov eax, dword [esp + 0x24]
test eax, eax
je 0x401c84
mov eax, dword [eax + 4]
push eax
mov eax, dword [esp + 0x5c]
push eax
call sub.MFC42.DLL_CDC::SelectGdiObject
mov eax, dword [esp + 0x28]
test eax, eax
je 0x401c9a
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x78]
push eax
push ecx
call sub.MFC42.DLL_CDC::SelectGdiObject
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x401cb0
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x68]
push eax
push edx
call sub.MFC42.DLL_CDC::SelectGdiObject
mov edi, 0x40e8a4
mov dword [esp + 0x3c], edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x8c], 8
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov esi, 0x40e890
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], esi
lea ecx, [esp + 0x44]
mov byte [esp + 0x8c], 9
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x74]
mov dword [esp + 0x44], esi
mov byte [esp + 0x8c], 2
call fcn.0040442a
lea ecx, [esp + 0x54]
mov byte [esp + 0x8c], 1
call fcn.0040442a
mov dword [esp + 0x34], edi
lea ecx, [esp + 0x34]
mov byte [esp + 0x8c], 0xa
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x64]
mov dword [esp + 0x34], esi
mov dword [esp + 0x8c], 0xffffffff
call fcn.0040442a
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x80
ret 4