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

Disassembly:
jmp 0x418430
sub esp, 0x8c
lea eax, [esp + 0x50]
push ebx
mov ebx, ecx
push ebp
push esi
mov ecx, dword [ebx + 0x20]
push edi
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [esp + 0xa0]
mov edx, dword [ebx + 0xc8]
mov esi, dword [ebx + 0xac]
mov eax, dword [ebx + 0xcc]
mov ecx, dword [edi]
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
push edx
add ecx, esi
push eax
push ecx
call ebp
dec eax
jns 0x418480
mov dword [esp + 0x2c], 0
jmp 0x4184a0
mov edx, dword [ebx + 0xc8]
mov ecx, dword [edi]
mov esi, dword [ebx + 0xac]
mov eax, dword [ebx + 0xcc]
push edx
add ecx, esi
push eax
push ecx
call ebp
dec eax
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0xc8]
mov ecx, dword [edi + 4]
mov esi, dword [ebx + 0xb0]
mov eax, dword [ebx + 0xcc]
push edx
add ecx, esi
push eax
push ecx
call ebp
dec eax
jns 0x4184c9
mov dword [esp + 0x30], 0
jmp 0x4184ea
mov edx, dword [ebx + 0xc8]
mov ecx, dword [edi + 4]
mov esi, dword [ebx + 0xb0]
mov eax, dword [ebx + 0xcc]
push edx
add ecx, esi
push eax
push ecx
call ebp
dec eax
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x418503
mov eax, dword [eax + 4]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
jmp 0x418505
xor esi, esi
mov edx, dword [ebx + 0xc8]
mov ecx, dword [edi + 8]
mov eax, dword [ebx + 0xcc]
push edx
mov edx, dword [ebx + 0xac]
push eax
add ecx, edx
push ecx
call ebp
inc eax
cmp esi, eax
jge 0x418543
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x41853f
mov eax, dword [eax + 4]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
jmp 0x418562
xor esi, esi
jmp 0x418562
mov edx, dword [ebx + 0xc8]
mov ecx, dword [edi + 8]
mov esi, dword [ebx + 0xac]
mov eax, dword [ebx + 0xcc]
push edx
add ecx, esi
push eax
push ecx
call ebp
mov esi, eax
inc esi
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x41857d
mov eax, dword [eax + 8]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x1c], eax
jmp 0x418585
mov dword [esp + 0x1c], 0
mov edx, dword [ebx + 0xc8]
mov ecx, dword [ebx + 0xb0]
mov eax, dword [ebx + 0xcc]
push edx
mov edx, dword [edi + 0xc]
push eax
add ecx, edx
push ecx
call ebp
mov ecx, dword [esp + 0x1c]
inc eax
cmp ecx, eax
jge 0x4185c7
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x4185c3
mov eax, dword [eax + 8]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
jmp 0x4185e6
xor edi, edi
jmp 0x4185e6
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebx + 0xcc]
mov ecx, dword [ebx + 0xb0]
push edx
push eax
mov eax, dword [edi + 0xc]
add ecx, eax
push ecx
call ebp
mov edi, eax
inc edi
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
mov eax, esi
sub eax, ecx
mov ecx, edi
sub ecx, ebp
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x28], ecx
jle 0x41901b
test ecx, ecx
jle 0x41901b
mov edx, dword [ebx + 0xcc]
mov eax, dword [ebx + 0xc8]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
push edx
push eax
push ecx
call ebp
mov edx, dword [ebx + 0xcc]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc8]
push edx
push eax
push ecx
call ebp
mov edx, dword [ebx + 0xcc]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0xc8]
push edx
push eax
push esi
call ebp
mov ecx, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc8]
push ecx
push edx
push edi
mov esi, eax
call ebp
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ecx, dword [ebx + 0xc8]
sub eax, edx
mov edx, dword [esp + 0x2c]
sub esi, edi
mov edi, eax
mov eax, dword [ebx + 0xcc]
push eax
push ecx
push edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
call ebp
mov edx, dword [ebx + 0xac]
mov ebp, dword [esp + 0xa8]
sub eax, edx
mov edx, dword [esp + 0x30]
mov dword [ebp], eax
mov eax, dword [ebx + 0xcc]
mov ecx, dword [ebx + 0xc8]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [ebx + 0xb0]
sub eax, edx
mov edx, dword [esp + 0x6c]
mov dword [ebp + 4], eax
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
add eax, esi
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgn]
add ecx, edi
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [ebp + 0xc], ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
push ecx
push edx
call esi
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov edi, eax
mov eax, dword [ebp + 0xc]
push eax
mov dword [esp + 0x60], edi
push ecx
mov eax, dword [ebp]
push edx
push eax
call esi
push 0
push 0
push 0
push 0
mov dword [esp + 0x54], eax
call esi
mov ecx, dword [esp + 0x44]
push 1
push edi
push ecx
push eax
mov dword [esp + 0x50], eax
call dword [sym.imp.GDI32.dll_CombineRgn]
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x418741
xor esi, esi
xor eax, eax
jmp 0x41874d
mov edx, dword [esp + 0xa4]
xor esi, esi
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x40]
push ecx
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov dword [esp + 0x18], 1
call fcn.00471020
cmp eax, 8
mov dword [esp + 0x48], eax
jne 0x418b16
mov edi, dword [esp + 0xa4]
cmp edi, esi
jne 0x418782
xor eax, eax
jmp 0x418785
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0xe8]
push esi
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
cmp edi, esi
jne 0x41879c
xor eax, eax
jmp 0x41879f
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
mov ecx, dword [ebx + 0xa4]
mov eax, dword [ecx + 4]
cmp eax, esi
je 0x4189fa
xor edx, edx
mov dx, word [eax + 0xe]
cmp edx, 8
jle 0x4189fa
push 0x428
call sub.MFC42.DLL_operatornew
mov edx, eax
add esp, 4
mov ecx, 0xa
xor eax, eax
mov edi, edx
mov dword [esp + 0x20], edx
rep stosd dword es:[edi], eax
lea ecx, [edx + 0x28]
mov word [ecx], ax
inc eax
add ecx, 2
cmp eax, 0x100
jl 0x4187e7
mov eax, dword [esp + 0x10]
xor edi, edi
mov dword [edx + 4], eax
mov eax, 1
mov dword [edx + 8], eax
mov word [edx + 0xc], ax
mov eax, dword [esp + 0x14]
mov dword [edx], 0x28
cmp eax, esi
mov word [edx + 0xe], 8
jle 0x4189ec
mov eax, dword [esp + 0x2c]
lea ecx, [eax + eax*2]
mov dword [esp + 0x3c], ecx
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x418846
mov eax, dword [eax + 8]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
jmp 0x418848
xor esi, esi
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebx + 0xcc]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub esi, dword [esp + 0x30]
sub esi, eax
dec esi
jns 0x418870
mov dword [esp + 0x1c], 0
jmp 0x4188ab
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x418889
mov eax, dword [eax + 8]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
jmp 0x41888b
xor esi, esi
mov ecx, dword [ebx + 0xc8]
mov edx, dword [ebx + 0xcc]
push ecx
push edx
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub esi, dword [esp + 0x30]
sub esi, eax
dec esi
mov dword [esp + 0x1c], esi
mov eax, dword [ebx + 0xa4]
mov esi, dword [eax + 4]
test esi, esi
je 0x4188c2
mov eax, dword [esi + 4]
cdq
xor eax, edx
sub eax, edx
jmp 0x4188c4
xor eax, eax
test esi, esi
je 0x4188d0
xor ecx, ecx
mov cx, word [esi + 0xe]
jmp 0x4188d2
xor ecx, ecx
imul ecx, eax
add ecx, 0x1f
mov edx, dword [ebx + 0xa4]
sar ecx, 3
and ecx, 0xfffffffc
mov esi, dword [edx + 8]
imul ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
add ecx, esi
mov esi, dword [ebx + 0xe4]
mov edx, dword [edx + 4]
add ecx, eax
mov eax, ecx
mov ecx, dword [ebx + 0xcc]
cmp ecx, dword [ebx + 0xc8]
je 0x418975
test edx, edx
je 0x41892f
xor ecx, ecx
mov cx, word [edx + 0xe]
cmp ecx, 0x18
jne 0x41892f
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
push edx
push esi
push ecx
push eax
call fcn.004a19f0
jmp 0x418958
mov ecx, dword [ebx + 0xa4]
mov edx, dword [ecx + 4]
test edx, edx
je 0x41895b
xor ecx, ecx
mov cx, word [edx + 0xe]
cmp ecx, 0x10
jne 0x41895b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
push edx
push esi
push ecx
push eax
call fcn.004a1a80
add esp, 0x10
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov ecx, dword [ebx + 0xd4]
dec edx
push edx
lea edx, [edi + eax]
push 0
push edx
push esi
push esi
jmp 0x4189a3
test edx, edx
je 0x41898c
xor ecx, ecx
mov cx, word [edx + 0xe]
cmp ecx, 0x18
jne 0x41898c
mov ecx, dword [ebx + 0xd4]
jmp 0x418992
mov ecx, dword [ebx + 0xd8]
mov edx, dword [esp + 0x10]
dec edx
push edx
mov edx, dword [esp + 0x54]
add edx, edi
push 0
push edx
push esi
push eax
call dword [ecx]
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x4189b3
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push 1
push ecx
mov ecx, dword [ebp + 4]
push esi
push 1
push 0
push 0
push 0
push 1
push edx
mov edx, dword [ebp]
add ecx, edi
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_SetDIBitsToDevice]
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x41882d
mov edx, dword [esp + 0x20]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x418f3b
mov esi, dword [ecx + 4]
mov eax, dword [esi + 8]
test eax, eax
jle 0x418a34
mov eax, esi
test eax, eax
je 0x418a22
mov eax, dword [eax + 8]
mov edi, dword [esp + 0x28]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x30]
sub eax, edi
sub eax, edx
mov edi, eax
jmp 0x418a38
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
xor eax, eax
sub eax, edi
sub eax, edx
mov edi, eax
jmp 0x418a38
mov edi, dword [esp + 0x30]
mov eax, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc8]
cmp eax, edx
jne 0x418aa6
mov eax, dword [ecx + 4]
test eax, eax
je 0x418a59
mov eax, dword [eax + 8]
cdq
xor eax, edx
sub eax, edx
jmp 0x418a5b
xor eax, eax
mov edx, dword [esp + 0xa4]
test edx, edx
jne 0x418a6a
xor edx, edx
jmp 0x418a74
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + 4]
mov ecx, dword [ecx + 8]
push 0
push esi
push ecx
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x3c]
push 0
push edi
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 4]
push eax
mov eax, dword [ebp]
push ecx
push eax
push edx
call dword [sym.imp.GDI32.dll_SetDIBitsToDevice]
mov dword [esp + 0x18], eax
jmp 0x418f3b
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x418ab4
mov eax, dword [eax + 4]
push 3
push eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x418acc
xor ecx, ecx
jmp 0x418acf
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0xa4]
push 0xcc0020
push 0
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x2c]
push edi
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [ebp + 4]
push edx
mov edx, dword [ebp]
push eax
push edx
push ecx
call dword [sym.imp.GDI32.dll_StretchDIBits]
mov dword [esp + 0x18], eax
jmp 0x418f3b
mov eax, dword [ebx + 0xa4]
mov edx, dword [eax + 4]
cmp edx, esi
je 0x418b32
xor ecx, ecx
mov cx, word [edx + 0xe]
cmp ecx, 8
jg 0x418ce7
mov eax, dword [eax + 4]
cmp eax, esi
je 0x418b71
mov ecx, dword [eax + 0x20]
cmp ecx, esi
je 0x418b58
cmp ecx, 0x100
jbe 0x418b52
mov dword [esp + 0x18], 0x100
jmp 0x418b75
mov dword [esp + 0x18], ecx
jmp 0x418b75
mov ax, word [eax + 0xe]
cmp ax, 8
ja 0x418b71
mov edx, 1
mov cl, al
shl edx, cl
mov dword [esp + 0x18], edx
jmp 0x418b75
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
lea esi, [eax*4 + 0x28]
push esi
call sub.MFC42.DLL_operatornew
mov edx, dword [ebx + 0xa4]
mov ecx, esi
mov edi, eax
add esp, 4
mov esi, dword [edx + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x20], eax
and ecx, 3
add eax, 0x28
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [ebx + 0xe0]
push eax
call fcn.004a1640
mov ecx, dword [ebx + 0xa4]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
test eax, eax
jle 0x418bfc
mov eax, edx
test eax, eax
je 0x418bea
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x28]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x30]
sub eax, esi
sub eax, edx
mov edi, eax
jmp 0x418c00
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
xor eax, eax
sub eax, esi
sub eax, edx
mov edi, eax
jmp 0x418c00
mov edi, dword [esp + 0x30]
mov eax, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc8]
cmp eax, edx
jne 0x418c70
mov eax, dword [ecx + 4]
test eax, eax
je 0x418c21
mov eax, dword [eax + 8]
cdq
xor eax, edx
sub eax, edx
jmp 0x418c23
xor eax, eax
mov edx, dword [esp + 0xa4]
test edx, edx
je 0x418c31
mov edx, dword [edx + 4]
mov esi, dword [esp + 0x20]
mov ecx, dword [ecx + 8]
push 0
push esi
push ecx
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x3c]
push 0
push edi
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 4]
push eax
mov eax, dword [ebp]
push ecx
push eax
push edx
call dword [sym.imp.GDI32.dll_SetDIBitsToDevice]
push esi
mov dword [esp + 0x1c], eax
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x418f3b
mov esi, dword [esp + 0xa4]
test esi, esi
jne 0x418c7f
xor eax, eax
jmp 0x418c82
mov eax, dword [esi + 4]
push 3
push eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
test esi, esi
jne 0x418c93
xor eax, eax
jmp 0x418c96
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0xa4]
mov esi, dword [esp + 0x20]
push 0xcc0020
push 0
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x30]
push esi
push edx
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x2c]
push edi
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [ebp + 4]
push ecx
mov ecx, dword [ebp]
push edx
push ecx
push eax
call dword [sym.imp.GDI32.dll_StretchDIBits]
push esi
mov dword [esp + 0x1c], eax
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x418f3b
mov ecx, dword [eax + 4]
cmp ecx, esi
je 0x418cf6
xor eax, eax
mov ax, word [ecx + 0xe]
jmp 0x418cf8
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp ecx, esi
jle 0x418f3b
imul eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x418d33
mov eax, dword [eax + 8]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
jmp 0x418d35
xor esi, esi
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebx + 0xcc]
mov edi, dword [esp + 0x1c]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub esi, dword [esp + 0x30]
sub esi, eax
dec esi
jns 0x418d61
mov dword [esp + 0x20], 0
jmp 0x418d9c
mov eax, dword [ebx + 0xa4]
mov eax, dword [eax + 4]
test eax, eax
je 0x418d7a
mov eax, dword [eax + 8]
cdq
mov esi, eax
xor esi, edx
sub esi, edx
jmp 0x418d7c
xor esi, esi
mov ecx, dword [ebx + 0xc8]
mov edx, dword [ebx + 0xcc]
push ecx
push edx
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub esi, dword [esp + 0x30]
sub esi, eax
dec esi
mov dword [esp + 0x20], esi
mov edi, dword [ebx + 0xa4]
mov esi, dword [edi + 4]
test esi, esi
je 0x418db3
mov eax, dword [esi + 4]
cdq
xor eax, edx
sub eax, edx
jmp 0x418db5
xor eax, eax
test esi, esi
je 0x418dc1
xor ecx, ecx
mov cx, word [esi + 0xe]
jmp 0x418dc3
xor ecx, ecx
imul ecx, eax
add ecx, 0x1f
mov esi, dword [edi + 8]
sar ecx, 3
and ecx, 0xfffffffc
mov edx, dword [esp + 0x3c]
imul ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0xcc]
add ecx, esi
mov esi, dword [ebx + 0xe4]
add ecx, edx
mov edx, ecx
mov ecx, dword [ebx + 0xc8]
cmp eax, ecx
je 0x418e47
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x418e1f
xor eax, eax
mov ax, word [ecx + 0xe]
cmp eax, 0x18
jne 0x418e1f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
push ecx
push esi
push eax
push edx
call fcn.004a19f0
add esp, 0x10
jmp 0x418e68
mov edi, dword [edi + 4]
test edi, edi
je 0x418e68
xor eax, eax
mov ax, word [edi + 0xe]
cmp eax, 0x10
jne 0x418e68
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
push ecx
push esi
push eax
push edx
call fcn.004a1a80
add esp, 0x10
jmp 0x418e68
mov edi, dword [edi + 4]
test edi, edi
je 0x418e6a
xor eax, eax
mov ax, word [edi + 0xe]
cmp eax, 0x10
jne 0x418e6a
mov ecx, dword [esp + 0x10]
push ecx
push esi
push edx
call fcn.004a0a10
add esp, 0xc
mov edx, esi
mov eax, dword [ebx + 0x1b0]
test eax, eax
jne 0x418e80
cmp dword [ebx + 0x1b4], 0x3ff00000
je 0x418e94
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0xe0]
push eax
push esi
push edx
call fcn.004a1540
mov edx, esi
cmp dword [esp + 0x48], 0x10
jne 0x418ec4
mov eax, dword [ebx + 0x1ac]
test eax, eax
je 0x418ec4
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xdc]
dec eax
push eax
mov eax, dword [esp + 0x54]
add edi, eax
push 0
push edi
push esi
push edx
call dword [ecx]
mov edx, esi
mov ecx, 0xb
xor eax, eax
lea edi, [esp + 0x70]
mov esi, 1
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x70], 0x28
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], esi
mov word [esp + 0x7c], si
mov word [esp + 0x7e], 0x18
je 0x418f04
mov eax, dword [eax + 4]
lea edi, [esp + 0x70]
push 0
push edi
push edx
push esi
push 0
mov edx, dword [ebp]
push 0
push 0
push esi
mov esi, dword [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 4]
add ecx, esi
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_SetDIBitsToDevice]
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
mov dword [esp + 0x1c], esi
jl 0x418d1a
mov eax, dword [esp + 0x5c]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call edi
mov ecx, dword [esp + 0x44]
push ecx
call edi
mov edx, dword [esp + 0x40]
push edx
call edi
mov ecx, dword [esp + 0xa4]
push 0
call sub.MFC42.DLL_CDC::SelectClipRgn
cmp dword [ebx + 0x1b8], 4
jne 0x419003
mov eax, dword [ebx + 0x1f8]
test eax, eax
je 0x419003
mov eax, dword [ebx + 0x200]
mov ecx, dword [eax + 0x18]
shl ecx, 3
push ecx
call sub.MFC42.DLL_operatornew
mov edi, eax
mov eax, dword [ebx + 0x200]
add esp, 4
xor esi, esi
mov ecx, dword [eax + 0x18]
test ecx, ecx
jle 0x418fd5
mov edx, dword [eax + 0x24]
mov eax, dword [edx + esi*8 + 4]
push eax
mov ecx, dword [edx + esi*8]
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, ebx
call fcn.00401df7
mov ecx, dword [eax]
mov dword [edi + esi*8], ecx
inc esi
mov edx, dword [eax + 4]
mov dword [edi + esi*8 - 4], edx
mov eax, dword [ebx + 0x200]
cmp esi, dword [eax + 0x18]
jl 0x418fa5
mov esi, dword [esp + 0xa4]
push 7
mov ecx, esi
call sub.MFC42.DLL_CDC::SetROP2
mov eax, dword [ebx + 0x200]
mov edx, dword [esi + 4]
mov ecx, dword [eax + 0x18]
push ecx
push edi
push edx
call dword [sym.imp.GDI32.dll_Polyline]
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
xor eax, eax
pop edi
pop esi
test ecx, ecx
pop ebp
pop ebx
setne al
add esp, 0x8c
ret 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret 0xc