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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4bb8c8
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 0x4a91f7
mov ebx, dword [esp + 0x4c]
cmp ebx, ebp
je 0x4a91f7
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
call fcn.00454da4
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 0x4a8d24
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 0x4a8d32
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 0x4a8f04
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 0x4a8d88
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 0x4a8d9b
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 4]
cmp ecx, eax
jne 0x4a8da8
mov eax, dword [esp + 0x50]
jmp 0x4a8dd6
add eax, ebp
cmp ecx, eax
jne 0x4a8dc6
cmp dword [esp + 0x5c], ebp
jge 0x4a8dc6
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
lea eax, [ebp + ebp*2]
sub eax, esi
add eax, ecx
jmp 0x4a8dd6
sub esi, ebp
cmp ecx, esi
mov ecx, dword [esp + 0x50]
lea eax, [ecx + ebp]
jl 0x4a8dd6
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 0x4a8de7
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 0x4a8e87
sub ecx, esi
sub ecx, edi
cmp ecx, edi
mov edx, ecx
jl 0x4a8e34
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 0x4a8e79
mov eax, edi
mov edx, ecx
add esi, eax
sub edx, edi
cmp esi, edx
jl 0x4a8e28
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x4a8ee4
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 0x4a8d80
jmp 0x4a91cc
cmp eax, 4
jne 0x4a9079
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 0x4a8f2e
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 0x4a8f43
mov dword [esp + 0x5c], eax
mov esi, dword [ebp]
mov ecx, dword [ebp + 8]
sub ecx, esi
cmp ecx, edi
jl 0x4a8f51
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 0x4a8ff4
mov edx, dword [esp + 0x10]
lea eax, [edi + edx]
mov dword [esp + 0x64], eax
sub ecx, esi
sub ecx, edi
cmp ecx, edi
jl 0x4a8fa7
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 0x4a8fea
mov eax, edi
add esi, eax
mov eax, ecx
sub eax, edi
cmp esi, eax
jl 0x4a8f9d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x4a905b
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 0x4a8f2a
jmp 0x4a91cc
cmp eax, 3
jne 0x4a910f
mov ebp, dword [esp + 0x54]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x54], ecx
jmp 0x4a9093
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 0x4a90a8
mov dword [esp + 0x58], eax
mov esi, dword [ebp]
mov eax, dword [ebp + 8]
sub eax, esi
mov ecx, edi
cmp edi, eax
jl 0x4a90b8
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 0x4a90ae
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 0x4a908f
jmp 0x4a91cc
dec eax
je 0x4a915f
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 0x4a91cc
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 4]
mov ecx, dword [eax + 0xc]
jne 0x4a919d
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 0x4a91c6
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