Function at 0x45e120
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eb27e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x34]
push esi
push edi
mov esi, ecx
push eax
mov dword [ebp - 0x14], esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push ecx
call fcn.0048ddd0
movsd xmm2, qword [0x5144b8]
lea ecx, [ebp + 8]
divsd xmm2, qword [esi + 0x10]
mov byte [esi + 0x78], al
xor edi, edi
lea eax, [esi + 0x10]
mov dword [ebp - 0x1c], eax
movsd xmm1, qword [esi + 8]
movaps xmm0, xmm1
addsd xmm1, qword [0x514578]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
cvttsd2si eax, xmm0
cvttsd2si esi, xmm1
test eax, eax
cmovns edi, eax
mov eax, 0x3e8
cmp esi, eax
cmovl esi, eax
call dword [sym.imp.mfc140.dll_Ordinal_316]
mov dword [ebp - 4], 0
sub esp, 0x18
mov eax, dword [ebp - 0x14]
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp - 0x1c]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [eax]
lea eax, [ebp + 8]
movsd qword [esp], xmm0
push esi
push edi
push str.T:_ld_B:_ld_S:_f_TY:_f_TX:_f
push eax
call dword [sym.imp.mfc140.dll_Ordinal_4807]
add esp, 0x28
mov ecx, 0x53d1b0
push dword [ebp + 8]
call dword [sym.imp.mfc140.dll_Ordinal_5894]
lea ecx, [eax + 0x3d80]
call dword [sym.imp.mfc140.dll_Ordinal_14054]
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipResetWorldTransform]
mov esi, dword [ebp - 0x14]
test eax, eax
je 0x45e21f
mov dword [ebx + 4], eax
lea edi, [esi + 0x10]
lea eax, [esi + 0x10]
mov dword [ebp - 0x1c], eax
jmp 0x45e225
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], edi
movsd xmm0, qword [esi + 8]
movsd xmm1, qword [esi]
cvtpd2ps xmm0, xmm0
push 0
sub esp, 8
cvtpd2ps xmm1, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipTranslateWorldTransform]
test eax, eax
je 0x45e258
mov edi, dword [ebp - 0x1c]
mov dword [ebx + 4], eax
movsd xmm0, qword [edi]
cvtpd2ps xmm0, xmm0
push 0
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipScaleWorldTransform]
test eax, eax
je 0x45e27f
mov dword [ebx + 4], eax
push str.__mapsettings
lea eax, [ebp - 0x18]
push eax
lea ecx, [esi + 0x7c]
call fcn.004bb2b0
push str.smooth
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.004b8fd0
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x45e2b4
mov ecx, dword [edx]
push edx
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x45e2c5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x1c], 1
jne 0x45e2f1
push 4
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipSetSmoothingMode]
test eax, eax
je 0x45e2e0
mov dword [ebx + 4], eax
push 4
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipSetTextRenderingHint]
test eax, eax
je 0x45e2f1
mov dword [ebx + 4], eax
push str.__sea
lea eax, [ebp - 0x20]
push eax
lea ecx, [esi + 0x7c]
call fcn.004bb2b0
push str.visible
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.004b8fd0
mov edi, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x45e325
mov ecx, dword [edx]
push edx
call dword [ecx + 8]
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x45e336
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0
cmp edi, 1
jne 0x45e3d3
push str.__sea
lea eax, [ebp - 0x28]
push eax
lea ecx, [esi + 0x7c]
call fcn.004bb2b0
push str.color
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 7
push ecx
mov ecx, eax
call fcn.004b93a0
push 0xff
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 8
push eax
call fcn.0045e010
push dword [eax]
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipGraphicsClear]
test eax, eax
je 0x45e38c
mov dword [ebx + 4], eax
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e3ab
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x45e3bc
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x45e3cd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 0
jmp 0x45e3e4
push 0xffffffffffffffff
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipGraphicsClear]
test eax, eax
je 0x45e3e4
mov dword [ebx + 4], eax
push ebx
mov ecx, esi
call fcn.0045e4e0
push ebx
mov ecx, esi
call fcn.0045e710
push ebx
mov ecx, esi
call fcn.0045ef60
push ebx
mov ecx, esi
call fcn.00461210
push ebx
mov ecx, esi
call fcn.0045fb30
push ebx
mov ecx, esi
call fcn.0045fd80
push ebx
mov ecx, esi
call fcn.00460030
push ebx
mov ecx, esi
call fcn.004602d0
push ebx
mov ecx, esi
call fcn.004608b0
push ebx
mov ecx, esi
call fcn.00461b30
push ebx
mov ecx, esi
call fcn.00462280
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
push 0xffff0000
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
movsd xmm2, qword [0x5144c8]
sub esp, 0x10
divsd xmm2, qword [esi + 0x10]
movsd xmm0, qword [esi + 0x18]
subsd xmm0, xmm2
cvtpd2ps xmm3, xmm0
movsd xmm0, qword [esi + 0x20]
mov esi, dword [ebp - 0x1c]
subsd xmm0, xmm2
addsd xmm2, xmm2
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
movss dword [esp + 0xc], xmm0
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm3
push esi
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipFillEllipse]
test eax, eax
je 0x45e4ae
mov dword [ebx + 4], eax
push esi
call dword [sym.imp.gdiplus.dll_GdipDeleteBrush]
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea ecx, [ebp + 8]
call dword [sym.imp.mfc140.dll_Ordinal_1044]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4