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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4bb6c8
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, dword [esp + 0x54]
xor ebp, ebp
cmp esi, ebp
je 0x4a8fd7
mov ebx, dword [esp + 0x4c]
cmp ebx, ebp
je 0x4a8fd7
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
call fcn.00454c04
mov eax, dword [ebx + 4]
mov dword [esp + 0x48], ebp
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CDC::Attach
lea ecx, [esp + 0x28]
push ecx
push 0x18
push esi
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x60]
cmp eax, ebp
je 0x4a8b04
mov ecx, dword [eax]
mov edi, dword [eax + 8]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
sub edi, ecx
sub esi, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x60], esi
mov ebp, edx
jmp 0x4a8b12
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x60], edx
mov esi, edx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
cmp eax, 5
jne 0x4a8ce4
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov edi, edx
imul esi
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
mov edx, dword [esp + 0x54]
mov ecx, dword [edx + 4]
mov dword [esp + 0x60], ecx
jmp 0x4a8b68
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x5c], ebp
mov eax, esi
sub eax, ecx
cmp ebp, eax
jl 0x4a8b7b
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 4]
cmp ecx, eax
jne 0x4a8b88
mov eax, dword [esp + 0x50]
jmp 0x4a8bb6
add eax, ebp
cmp ecx, eax
jne 0x4a8ba6
cmp dword [esp + 0x5c], ebp
jge 0x4a8ba6
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
lea eax, [ebp + ebp*2]
sub eax, esi
add eax, ecx
jmp 0x4a8bb6
sub esi, ebp
cmp ecx, esi
mov ecx, dword [esp + 0x50]
lea eax, [ecx + ebp]
jl 0x4a8bb6
lea eax, [ecx + ebp*2]
mov esi, dword [edx]
mov ecx, dword [edx + 8]
sub ecx, esi
mov dword [esp + 0x58], eax
cmp ecx, edi
jl 0x4a8bc7
mov ecx, edi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x70]
push ebp
push ecx
mov ecx, dword [ebx + 4]
push eax
push esi
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edx, dword [esp + 0x54]
add esi, edi
mov ecx, dword [edx + 8]
mov eax, ecx
sub eax, edi
cmp esi, eax
jge 0x4a8c67
sub ecx, esi
sub ecx, edi
cmp ecx, edi
mov edx, ecx
jl 0x4a8c14
mov edx, edi
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, ecx
mov ecx, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x18]
add ecx, edi
push ecx
push eax
mov eax, dword [ebx + 4]
push ebp
push edx
mov edx, dword [esp + 0x78]
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + 8]
mov eax, ecx
sub eax, esi
sub eax, edi
cmp eax, edi
jl 0x4a8c59
mov eax, edi
mov edx, ecx
add esi, eax
sub edx, edi
cmp esi, edx
jl 0x4a8c08
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x4a8cc4
lea edx, [edi + edi]
push 0xcc0020
sub edx, eax
add ecx, edx
xor edx, edx
test ecx, ecx
setle dl
sub eax, esi
dec edx
mov dword [esp + 0x68], eax
lea eax, [esp + 0x1c]
and ecx, edx
mov edx, dword [esp + 0x20]
neg eax
sbb eax, eax
lea ecx, [ecx + edi*2]
and eax, edx
mov edx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x18]
add ecx, edx
mov edx, dword [esp + 0x6c]
push ecx
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x70]
push ebp
push edx
push eax
push esi
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
add eax, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x60], eax
cmp eax, dword [edx + 0xc]
jl 0x4a8b60
jmp 0x4a8fac
cmp eax, 4
jne 0x4a8e59
mov eax, 0x55555556
mov ebp, dword [esp + 0x54]
imul edi
mov ecx, dword [ebp + 4]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x58], ecx
mov edi, edx
jmp 0x4a8d0e
mov esi, dword [esp + 0x60]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x58]
sub eax, edx
mov dword [esp + 0x5c], esi
cmp esi, eax
jl 0x4a8d23
mov dword [esp + 0x5c], eax
mov esi, dword [ebp]
mov ecx, dword [ebp + 8]
sub ecx, esi
cmp ecx, edi
jl 0x4a8d31
mov ecx, edi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x18]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [ebp + 8]
add esi, edi
mov eax, ecx
sub eax, edi
cmp esi, eax
jge 0x4a8dd4
mov edx, dword [esp + 0x10]
lea eax, [edi + edx]
mov dword [esp + 0x64], eax
sub ecx, esi
sub ecx, edi
cmp ecx, edi
jl 0x4a8d87
mov ecx, edi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [ebp + 8]
mov eax, ecx
sub eax, esi
sub eax, edi
cmp eax, edi
jl 0x4a8dca
mov eax, edi
add esi, eax
mov eax, ecx
sub eax, edi
cmp esi, eax
jl 0x4a8d7d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x4a8e3b
lea ebp, [edi + edi]
push 0xcc0020
mov edx, ebp
sub edx, eax
add ecx, edx
xor edx, edx
test ecx, ecx
setle dl
sub eax, esi
dec edx
mov dword [esp + 0x68], eax
lea eax, [esp + 0x1c]
and ecx, edx
mov edx, dword [esp + 0x20]
neg eax
sbb eax, eax
add ebp, ecx
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
add ebp, edx
mov edx, dword [esp + 0x60]
push ebp
push eax
mov eax, dword [esp + 0x6c]
push eax
mov eax, dword [ebx + 4]
push ecx
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov ecx, dword [ebp + 0xc]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x58], eax
jl 0x4a8d0a
jmp 0x4a8fac
cmp eax, 3
jne 0x4a8eef
mov ebp, dword [esp + 0x54]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x54], ecx
jmp 0x4a8e73
mov esi, dword [esp + 0x60]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
sub eax, edx
mov dword [esp + 0x58], esi
cmp esi, eax
jl 0x4a8e88
mov dword [esp + 0x58], eax
mov esi, dword [ebp]
mov eax, dword [ebp + 8]
sub eax, esi
mov ecx, edi
cmp edi, eax
jl 0x4a8e98
mov ecx, eax
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x18]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x68]
push eax
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp + 8]
add esi, edi
cmp esi, eax
jl 0x4a8e8e
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
mov ecx, dword [ebp + 0xc]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x54], eax
jl 0x4a8e6f
jmp 0x4a8fac
dec eax
je 0x4a8f3f
mov eax, dword [esp + 0x54]
push 0xcc0020
push esi
mov esi, dword [esp + 0x58]
mov edx, dword [eax]
mov ebp, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x5c]
sub edx, eax
lea eax, [esp + 0x20]
sub ecx, ebp
push edi
neg eax
sbb eax, eax
push esi
and eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
push esi
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [ebx + 4]
push edx
push ebp
push eax
push ecx
call dword [sym.imp.GDI32.dll_StretchBlt]
jmp 0x4a8fac
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 4]
mov ecx, dword [eax + 0xc]
jne 0x4a8f7d
mov edi, dword [eax]
mov edx, dword [eax + 8]
lea eax, [esp + 0x18]
sub ecx, esi
sub edx, edi
push 0xcc0020
neg eax
sbb eax, eax
push ebp
and eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
push ebp
push eax
push ecx
push edx
mov edx, dword [ebx + 4]
push esi
push edi
push edx
jmp 0x4a8fa6
mov edi, dword [eax]
mov edx, dword [eax + 8]
lea eax, [esp + 0x18]
sub ecx, esi
sub edx, edi
push 0xcc0020
neg eax
sbb eax, eax
push ebp
and eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
push ebp
push eax
mov eax, dword [ebx + 4]
push ecx
push edx
push esi
push edi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CDC::DeleteDC
lea ecx, [esp + 0x18]
mov dword [esp + 0x48], 0xffffffff
call sub.MFC42.DLL_CDC::CDC
pop edi
mov ecx, dword [esp + 0x3c]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret