Function at 0x4c40ee
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59f306
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xec
push esi
push edi
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
mov edx, dword [ecx + 0x12c]
push edx
lea ecx, [ebp - 0xac]
call sub.MFC42.DLL_CClientDC::CClientDC
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x98]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_ReferenceSystem::constructor_void_]
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax + 0xd4]
add esi, 0x290
mov ecx, 0x20
lea edi, [ebp - 0x98]
rep movsd dword es:[edi], dword [esi]
mov word [ebp - 0x14], 1
mov dword [ebp - 0x10], 0
xor ecx, ecx
mov cl, byte [0x600665]
and ecx, 1
test ecx, ecx
jne 0x4c419a
mov dl, byte [0x600665]
or dl, 1
mov byte [0x600665], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x60065c], eax
mov word [ebp - 0x18], 1
mov eax, dword [ebp + 0x10]
and eax, 0x2000
test eax, eax
je 0x4c41b2
mov word [ebp - 0x18], 0xffff
mov ecx, dword [ebp - 0xcc]
cmp dword [ecx + 0xcc], 0
je case.default.0x4c469a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x600668], eax
mov edx, dword [ebp - 0xcc]
cmp dword [edx + 0x108], 3
jne 0x4c41eb
mov dword [0x5f353c], 0xfa0
jmp 0x4c41f5
mov dword [0x5f353c], 0x12c
mov eax, dword [0x600668]
push eax
call sub.MSVCRT.dll_abs
add esp, 4
mov esi, eax
mov ecx, dword [0x60065c]
push ecx
call sub.MSVCRT.dll_abs
add esp, 4
sub esi, eax
cmp esi, dword [0x5f353c]
jae 0x4c4229
mov word [0x5f3538], 2
jmp 0x4c4232
mov word [0x5f3538], 1
mov edx, dword [0x600668]
mov dword [0x60065c], edx
push 1
push 0x108
push 0x100
push 0
lea eax, [ebp - 0xc8]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4c425f
jmp 0x4c423e
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x108]
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], 1
je 0x4c4299
cmp dword [ebp - 0xd0], 2
je 0x4c45ab
cmp dword [ebp - 0xd0], 3
je 0x4c4624
jmp case.default.0x4c469a
movsx eax, word [ebp - 0x18]
cmp eax, 0xffffffff
jne 0x4c431b
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xd4], ecx
cmp dword [ebp - 0xd4], 0x26
je 0x4c42bf
cmp dword [ebp - 0xd4], 0x28
je 0x4c42d5
jmp 0x4c42e9
push 0xffffffffffffffff
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::ScaleXY_short_int_]
jmp 0x4c42e9
push 1
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::ScaleXY_short_int_]
push 0
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0xcc]
push edx
push 0xe0
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::DrawPartial_class_CDC___int__int__long_int_]
jmp case.default.0x4c469a
movsx edx, word [0x5f3538]
cmp edx, 1
jne 0x4c4331
mov ax, word [ebp - 0x14]
mov word [ebp - 0x14], ax
jmp 0x4c4349
movsx ecx, word [ebp - 0x14]
movsx edx, word [0x5f3538]
sub edx, 1
imul edx, edx, 0xa
imul ecx, edx
mov word [ebp - 0x14], cx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
sub ecx, 0x23
mov dword [ebp - 0xd8], ecx
cmp dword [ebp - 0xd8], 5
ja case.default.0x4c4374
mov edx, dword [ebp - 0xd8]
jmp dword [edx*4 + 0x4c47bd]
movsx eax, word [ebp - 0x14]
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0xd0]
fmul qword [edx + 0xe8]
sub esp, 8
fstp qword [esp]
push 0x26
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::AxisOffsetDraw_unsigned_int__double_]
jmp case.default.0x4c4374
movsx ecx, word [ebp - 0x14]
mov dword [ebp - 0xe0], ecx
fild dword [ebp - 0xe0]
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0xd0]
fmul qword [eax + 0xe8]
sub esp, 8
fstp qword [esp]
push 0x28
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::AxisOffsetDraw_unsigned_int__double_]
jmp case.default.0x4c4374
movsx edx, word [ebp - 0x14]
mov dword [ebp - 0xe4], edx
fild dword [ebp - 0xe4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
fmul qword [ecx + 0xe8]
sub esp, 8
fstp qword [esp]
push 0x24
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::AxisOffsetDraw_unsigned_int__double_]
jmp case.default.0x4c4374
movsx eax, word [ebp - 0x14]
mov dword [ebp - 0xe8], eax
fild dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0xd0]
fmul qword [edx + 0xe8]
sub esp, 8
fstp qword [esp]
push 0x23
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::AxisOffsetDraw_unsigned_int__double_]
jmp case.default.0x4c4374
movsx ecx, word [ebp - 0x14]
mov dword [ebp - 0xec], ecx
fild dword [ebp - 0xec]
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0xd0]
fmul qword [eax + 0xf0]
sub esp, 8
fstp qword [esp]
push 0x27
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::AxisOffsetDraw_unsigned_int__double_]
jmp case.default.0x4c4374
movsx edx, word [ebp - 0x14]
mov dword [ebp - 0xf0], edx
fild dword [ebp - 0xf0]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
fmul qword [ecx + 0xf0]
sub esp, 8
fstp qword [esp]
push 0x25
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::AxisOffsetDraw_unsigned_int__double_]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_int___thiscall_CGraphDisplay::IsOutOfDisplayWnd_void_]
test eax, eax
je 0x4c45a6
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xd4]
add ecx, 0x28
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_Object::Center_void_]
mov edx, dword [ebp - 0xcc]
mov esi, dword [edx + 0xd4]
add esi, 0x290
mov ecx, 0x20
lea edi, [ebp - 0x98]
rep movsd dword es:[edi], dword [esi]
push 0
push 0
push 0
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd4]
add ecx, 0x310
push ecx
lea edx, [ebp - 0x98]
push edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd4]
add ecx, 0x28
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_Object::Rotate_class_ReferenceSystem___class_ReferenceSystem___enum_Axis__double_]
push 0
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0xcc]
push edx
push 0xe0
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::DrawPartial_class_CDC___int__int__long_int_]
jmp case.default.0x4c469a
mov edx, dword [ebp + 8]
mov dword [ebp - 0xf4], edx
cmp dword [ebp - 0xf4], 0x26
je 0x4c45c8
cmp dword [ebp - 0xf4], 0x28
je 0x4c45de
jmp 0x4c45f2
push 0xffffffffffffffff
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::ScaleXY_short_int_]
jmp 0x4c45f2
push 1
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::ScaleXY_short_int_]
push 0
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0xcc]
push eax
push 0xe0
lea ecx, [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 0xd0]
call dword [sym.imp.GDISPLAY.dll_public:_void___thiscall_CGraphDisplay::DrawPartial_class_CDC___int__int__long_int_]
jmp case.default.0x4c469a
movsx eax, word [0x5f3538]
cmp eax, 1
jle 0x4c4666
movsx ecx, word [0x5f3538]
imul ecx, ecx, 0xa
mov dword [ebp - 0x10], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0xcc]
mov dword [edx + 0x164], eax
push 0
push 0x1f4
push 0x4cf
mov ecx, dword [ebp - 0xcc]
call fcn.00412150
mov word [0x5f3538], 1
mov eax, dword [ebp + 8]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xf8]
sub ecx, 0x23
mov dword [ebp - 0xf8], ecx
cmp dword [ebp - 0xf8], 5
ja case.default.0x4c469a
mov edx, dword [ebp - 0xf8]
jmp dword [edx*4 + 0x4c47d5]
mov eax, dword [ebp - 0x10]
push eax
mov cx, word [0x5f3538]
push ecx
mov dx, word [ebp - 0x18]
push edx
push 0xffffffffffffffff
push 1
lea eax, [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0xcc]
call fcn.004c47ed
jmp case.default.0x4c469a
mov ecx, dword [ebp - 0x10]
push ecx
mov dx, word [0x5f3538]
push edx
mov ax, word [ebp - 0x18]
push eax
push 1
push 1
lea ecx, [ebp - 0x98]
push ecx
mov ecx, dword [ebp - 0xcc]
call fcn.004c47ed
jmp case.default.0x4c469a
mov edx, dword [ebp - 0x10]
push edx
mov ax, word [0x5f3538]
push eax
mov cx, word [ebp - 0x18]
push ecx
push 1
push 2
lea edx, [ebp - 0x98]
push edx
mov ecx, dword [ebp - 0xcc]
call fcn.004c47ed
jmp case.default.0x4c469a
mov eax, dword [ebp - 0x10]
push eax
mov cx, word [0x5f3538]
push ecx
mov dx, word [ebp - 0x18]
push edx
push 0xffffffffffffffff
push 2
lea eax, [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0xcc]
call fcn.004c47ed
jmp case.default.0x4c469a
mov ecx, dword [ebp - 0x10]
push ecx
mov dx, word [0x5f3538]
push edx
mov ax, word [ebp - 0x18]
push eax
push 1
push 3
lea ecx, [ebp - 0x98]
push ecx
mov ecx, dword [ebp - 0xcc]
call fcn.004c47ed
jmp case.default.0x4c469a
mov edx, dword [ebp - 0x10]
push edx
mov ax, word [0x5f3538]
push eax
mov cx, word [ebp - 0x18]
push ecx
push 0xffffffffffffffff
push 3
lea edx, [ebp - 0x98]
push edx
mov ecx, dword [ebp - 0xcc]
call fcn.004c47ed
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.0058e20e
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc