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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4bb898
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 0x4a9187
mov ebx, dword [esp + 0x4c]
cmp ebx, ebp
je 0x4a9187
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
call fcn.00454cc4
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 0x4a8cb4
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 0x4a8cc2
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 0x4a8e94
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 0x4a8d18
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 0x4a8d2b
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 4]
cmp ecx, eax
jne 0x4a8d38
mov eax, dword [esp + 0x50]
jmp 0x4a8d66
add eax, ebp
cmp ecx, eax
jne 0x4a8d56
cmp dword [esp + 0x5c], ebp
jge 0x4a8d56
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
lea eax, [ebp + ebp*2]
sub eax, esi
add eax, ecx
jmp 0x4a8d66
sub esi, ebp
cmp ecx, esi
mov ecx, dword [esp + 0x50]
lea eax, [ecx + ebp]
jl 0x4a8d66
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 0x4a8d77
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 0x4a8e17
sub ecx, esi
sub ecx, edi
cmp ecx, edi
mov edx, ecx
jl 0x4a8dc4
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 0x4a8e09
mov eax, edi
mov edx, ecx
add esi, eax
sub edx, edi
cmp esi, edx
jl 0x4a8db8
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x4a8e74
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 0x4a8d10
jmp 0x4a915c
cmp eax, 4
jne 0x4a9009
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 0x4a8ebe
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 0x4a8ed3
mov dword [esp + 0x5c], eax
mov esi, dword [ebp]
mov ecx, dword [ebp + 8]
sub ecx, esi
cmp ecx, edi
jl 0x4a8ee1
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 0x4a8f84
mov edx, dword [esp + 0x10]
lea eax, [edi + edx]
mov dword [esp + 0x64], eax
sub ecx, esi
sub ecx, edi
cmp ecx, edi
jl 0x4a8f37
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 0x4a8f7a
mov eax, edi
add esi, eax
mov eax, ecx
sub eax, edi
cmp esi, eax
jl 0x4a8f2d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x4a8feb
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 0x4a8eba
jmp 0x4a915c
cmp eax, 3
jne 0x4a909f
mov ebp, dword [esp + 0x54]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x54], ecx
jmp 0x4a9023
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 0x4a9038
mov dword [esp + 0x58], eax
mov esi, dword [ebp]
mov eax, dword [ebp + 8]
sub eax, esi
mov ecx, edi
cmp edi, eax
jl 0x4a9048
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 0x4a903e
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 0x4a901f
jmp 0x4a915c
dec eax
je 0x4a90ef
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 0x4a915c
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 4]
mov ecx, dword [eax + 0xc]
jne 0x4a912d
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 0x4a9156
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