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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x208
mov eax, dword [0x10060008]
xor eax, esp
mov dword [esp + 0x204], eax
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x50]
mov esi, ecx
mov dword [esp + 0x28], 0
push eax
mov dword [esp + 0x14], esi
push dword [esi]
call edi
lea eax, [esp + 0xb0]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_BeginPaint]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x60]
push eax
push dword [esi]
call edi
test byte [esi + 4], 0x80
mov edi, dword [esp + 0x44]
je 0x1002e9c4
push 7
jmp 0x1002e9c6
push 8
push edi
call dword [sym.imp.GDI32.dll_SetMapMode]
mov eax, dword [esi + 0x64]
push 0
push eax
push eax
push edi
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov edx, dword [esi + 0x64]
mov ecx, edx
cmp dword [esp + 0x6c], edx
push 0
cmovg ecx, dword [esp + 0x70]
cmp dword [esp + 0x6c], edx
push ecx
cmovg edx, dword [esp + 0x70]
push edx
push edi
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edi, eax
lea eax, [esp + 0x60]
push eax
push dword [esi]
mov dword [esp + 0x10], edi
call dword [sym.imp.USER32.dll_GetClientRect]
test byte [esi + 4], 0x80
je 0x1002ea21
push 7
jmp 0x1002ea23
push 8
push edi
call dword [sym.imp.GDI32.dll_SetMapMode]
mov eax, dword [esi + 0x64]
push 0
push eax
push eax
push edi
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov edx, dword [esi + 0x64]
mov ecx, edx
cmp dword [esp + 0x6c], edx
push 0
cmovg ecx, dword [esp + 0x70]
cmp dword [esp + 0x6c], edx
push ecx
cmovg edx, dword [esp + 0x70]
push edx
push edi
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
push eax
push dword [esp + 0x4c]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push edi
mov dword [esp + 0x54], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 1
push edi
mov dword [esp + 0x50], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
push dword [esi + 0x34]
mov edi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
call edi
mov esi, eax
lea eax, [esp + 0x50]
push esi
push eax
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [esp + 0x10]
push dword [esi + 0x1c]
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
push dword [esp + 0xc]
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esi + 0x20]
mov dword [esp + 0x34], eax
call edi
mov edi, eax
push edi
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x64]
add eax, 0xfffffffe
push eax
push eax
push 2
push 2
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_Ellipse]
push dword [esp + 0x30]
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
mov esi, dword [esp + 0xc]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
movaps xmm0, xmmword [0x1005ba30]
lea ecx, [esp + 0x90]
mov edi, 0x100583e4
mov dword [esp + 0x84], 0x258
mov eax, ecx
mov dword [esp + 0x88], 0
movups xmmword [esp + 0x74], xmm0
mov dword [esp + 0x8c], 0x32020000
mov edx, 0x20
sub edi, eax
lea eax, [edx + 0x7fffffde]
test eax, eax
je 0x1002eb8b
mov al, byte [ecx + edi]
test al, al
je 0x1002eb8b
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x1002eb72
mov edi, dword [esp + 0x10]
lea eax, [ecx - 1]
test edx, edx
cmovne eax, ecx
mov byte [eax], 0
mov eax, dword [edi + 0x68]
test eax, eax
je 0x1002eba8
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x70]
mov dword [esp + 0x74], 0xa
test eax, eax
je 0x1002ebcc
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [edi + 0x70], eax
mov eax, dword [edi + 0x74]
test eax, eax
je 0x1002ebe8
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x74], 9
test eax, eax
je 0x1002ec0c
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x78]
mov dword [esp + 0x74], 7
test eax, eax
je 0x1002ec30
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [edi + 0x78], eax
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x1002ecdd
mov edx, 0x64
nop
cmp byte [eax], 0
je 0x1002ec5b
inc eax
sub edx, 1
jne 0x1002ec50
mov esi, dword [esp + 0x10]
mov ecx, edx
mov eax, 0x64
sub eax, edx
neg ecx
push dword [esi + 0x3c]
sbb ecx, ecx
xor edi, edi
push dword [esp + 0xc]
and ecx, eax
mov eax, dword [sym.imp.GDI32.dll_SetTextColor]
test edx, edx
cmovne edi, ecx
call eax
push 0xe
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SetTextAlign]
push dword [esi + 0x68]
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [esi + 0x64]
mov dword [esp + 0x28], eax
mov eax, 0x66666667
push edi
mov edi, dword [esp + 0x14]
lea ecx, [esi + esi]
imul ecx
mov eax, esi
mov esi, dword [esp + 0xc]
push dword [edi + 0x5c]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
sub eax, edx
push ecx
sar eax, 1
push eax
push esi
call dword [sym.imp.GDI32.dll_TextOutA]
push dword [esp + 0x28]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
test byte [edi + 4], 4
je 0x1002ede4
push dword [edi + 0x40]
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
push 6
push esi
call dword [sym.imp.GDI32.dll_SetTextAlign]
push dword [edi + 0x74]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
movss xmm0, dword [edi + 0x50]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
fld1
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
fstp qword [esp + 0x20]
xorps xmm0, xmm0
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x1002ed52
cvttss2si eax, dword [edi + 0x50]
push eax
push 0x100583ec
lea eax, [esp + 0x110]
push 0xff
push eax
call fcn.100032e0
add esp, 0x10
jmp 0x1002ed7f
movss xmm0, dword [edi + 0x50]
lea eax, [esp + 0x108]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [edi + 0x4c]
push 0x100583f0
push 0xff
push eax
call fcn.100032e0
add esp, 0x18
mov edx, 0xff
lea eax, [esp + 0x108]
nop dword [eax + eax]
cmp byte [eax], 0
je 0x1002ed9b
inc eax
sub edx, 1
jne 0x1002ed90
mov ecx, edx
mov eax, 0xff
sub eax, edx
neg ecx
sbb ecx, ecx
and ecx, eax
xor eax, eax
test edx, edx
cmovne eax, ecx
mov ecx, dword [edi + 0x64]
push eax
lea eax, [esp + 0x10c]
push eax
lea eax, [ecx + ecx*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
push esi
call dword [sym.imp.GDI32.dll_TextOutA]
push dword [esp + 0x28]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [edi + 0x60]
test eax, eax
je 0x1002ee81
mov ecx, 0x64
cmp byte [eax], 0
je 0x1002edff
inc eax
sub ecx, 1
jne 0x1002edf4
mov esi, dword [esp + 0x10]
mov eax, ecx
mov edx, 0x64
sub edx, ecx
neg eax
push dword [esi + 0x38]
sbb eax, eax
xor edi, edi
push dword [esp + 0xc]
and eax, edx
test ecx, ecx
cmovne edi, eax
mov eax, dword [sym.imp.GDI32.dll_SetTextColor]
call eax
push 6
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SetTextAlign]
push dword [esi + 0x70]
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [esi + 0x64]
mov eax, 0x66666667
push edi
mov edi, dword [esp + 0x14]
lea ecx, [esi*4]
imul ecx
push dword [edi + 0x60]
sar edx, 1
mov eax, esi
mov esi, dword [esp + 0x10]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
sub eax, edx
push ecx
sar eax, 1
push eax
push esi
call dword [sym.imp.GDI32.dll_TextOutA]
push dword [esp + 0x28]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 6
push esi
mov byte [esp + 0x110], 0
call dword [sym.imp.GDI32.dll_SetTextAlign]
push dword [edi + 0x78]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [edi + 4]
test al, 0x10
je 0x1002f022
push dword [edi + 0x44]
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
lea ecx, [esp + 0x108]
mov esi, str.Min:
mov eax, ecx
mov edx, 0xff
sub esi, eax
lea eax, [edx + 0x7ffffeff]
test eax, eax
je 0x1002eedf
mov al, byte [ecx + esi]
test al, al
je 0x1002eedf
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x1002eec6
test edx, edx
lea eax, [ecx - 1]
mov edx, 0xff
cmovne eax, ecx
mov byte [eax], 0
lea eax, [esp + 0x108]
cmp byte [eax], 0
je 0x1002ef01
inc eax
sub edx, 1
jne 0x1002eef6
movss xmm0, dword [edi + 0x54]
mov ecx, edx
mov eax, 0xff
sub eax, edx
neg ecx
sbb ecx, ecx
xor esi, esi
and ecx, eax
test edx, edx
mov eax, 0xff
lea edx, [esp + 0x108]
cmovne esi, ecx
sub eax, esi
mov dword [esp + 0x14], esi
add esi, edx
mov dword [esp + 0xc], eax
xor edx, edx
test esi, esi
je 0x1002efdb
test eax, eax
je 0x1002efdb
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
fld1
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
fstp qword [esp + 0x20]
xorps xmm0, xmm0
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x1002ef87
cvttss2si eax, dword [edi + 0x54]
push eax
push 0x100583ec
push dword [esp + 0x14]
push esi
call fcn.100032e0
add esp, 0x10
jmp 0x1002efac
movss xmm1, dword [edi + 0x54]
sub esp, 8
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
push dword [edi + 0x4c]
push 0x100583f0
push dword [esp + 0x1c]
push esi
call fcn.100032e0
add esp, 0x18
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7fffffff
ja 0x1002efd9
mov eax, ecx
nop word [eax + eax]
cmp byte [esi], 0
je 0x1002efcb
inc esi
sub eax, 1
jne 0x1002efc0
sub ecx, eax
mov edx, eax
neg edx
sbb edx, edx
and edx, ecx
test eax, eax
jne 0x1002efdb
xor edx, edx
mov eax, dword [esp + 0x14]
mov esi, dword [edi + 0x64]
add eax, edx
push eax
lea eax, [esp + 0x10c]
push eax
lea ecx, [esi + esi]
mov eax, 0x55555556
imul ecx
lea ecx, [esi + esi*8]
mov esi, dword [esp + 0x10]
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call dword [sym.imp.GDI32.dll_TextOutA]
mov eax, dword [edi + 4]
test al, 8
je 0x1002f1a7
push dword [edi + 0x48]
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
lea ecx, [esp + 0x108]
mov esi, str.Max:
mov eax, ecx
mov edx, 0xff
sub esi, eax
nop dword [eax]
lea eax, [edx + 0x7ffffeff]
test eax, eax
je 0x1002f069
mov al, byte [ecx + esi]
test al, al
je 0x1002f069
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x1002f050
test edx, edx
lea eax, [ecx - 1]
mov edx, 0xff
cmovne eax, ecx
mov byte [eax], 0
lea eax, [esp + 0x108]
cmp byte [eax], 0
je 0x1002f08b
inc eax
sub edx, 1
jne 0x1002f080
movss xmm0, dword [edi + 0x58]
mov ecx, edx
mov eax, 0xff
sub eax, edx
neg ecx
sbb ecx, ecx
xor esi, esi
and ecx, eax
test edx, edx
mov eax, 0xff
lea edx, [esp + 0x108]
cmovne esi, ecx
sub eax, esi
mov dword [esp + 0x14], esi
add esi, edx
mov dword [esp + 0xc], eax
xor edx, edx
test esi, esi
je 0x1002f15f
test eax, eax
je 0x1002f15f
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
fld1
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
fstp qword [esp + 0x20]
xorps xmm0, xmm0
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x1002f111
cvttss2si eax, dword [edi + 0x58]
push eax
push 0x100583ec
push dword [esp + 0x14]
push esi
call fcn.100032e0
add esp, 0x10
jmp 0x1002f136
movss xmm1, dword [edi + 0x58]
sub esp, 8
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
push dword [edi + 0x4c]
push 0x100583f0
push dword [esp + 0x1c]
push esi
call fcn.100032e0
add esp, 0x18
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7fffffff
ja 0x1002f15d
mov eax, ecx
cmp byte [esi], 0
je 0x1002f14f
inc esi
sub eax, 1
jne 0x1002f144
sub ecx, eax
mov edx, eax
neg edx
sbb edx, edx
and edx, ecx
test eax, eax
jne 0x1002f15f
xor edx, edx
mov esi, dword [edi + 0x64]
mov eax, 0x55555556
mov ecx, dword [esp + 0x14]
add ecx, edx
push ecx
lea ecx, [esp + 0x10c]
push ecx
lea ecx, [esi + esi]
imul ecx
mov eax, 0x2aaaaaab
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov ecx, esi
shl ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x14]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call dword [sym.imp.GDI32.dll_TextOutA]
push dword [esp + 0x28]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [edi + 0x2c]
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push dword [edi + 0x30]
mov dword [esp + 0x38], eax
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push dword [edi + 0x28]
movss xmm0, dword [edi + 0x14]
push esi
mov dword [esp + 0x1c], eax
movss dword [esp + 0x34], xmm0
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [edi + 0x6c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [edi + 0x7c]
xor edx, edx
mov dword [esp + 0x18], edx
test ecx, ecx
je 0x1002f637
movss xmm3, dword [edi + 0x14]
mov eax, edx
movss xmm2, dword [edi + 0x18]
movd xmm0, edx
subss xmm2, xmm3
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push dword [esp + 0x34]
addsd xmm0, qword [eax*8 + 0x1005bb20]
lea eax, [ecx - 1]
push esi
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, xmm2
addsd xmm0, qword [eax*8 + 0x1005bb20]
cvtpd2ps xmm0, xmm0
divss xmm4, xmm0
movss xmm0, dword [edi + 0x10]
addss xmm4, xmm3
subss xmm0, dword [edi + 0xc]
movss dword [esp + 0x24], xmm4
subss xmm4, xmm3
divss xmm4, xmm2
mulss xmm4, xmm0
addss xmm4, dword [edi + 0xc]
subss xmm4, dword [0x1005b9d4]
movss dword [esp + 0x14], xmm4
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [edi + 0x64]
test edx, edx
jns 0x1002f297
add edx, 1
sar edx, 1
movss xmm1, dword [esp + 0xc]
lea eax, [edx - 0xb]
push eax
lea eax, [edx - 3]
mov ecx, esi
push eax
push edx
call fcn.100123b0
add esp, 0xc
mov edi, dword [edi + 0x64]
test edi, edi
jns 0x1002f2bc
add edi, 1
sar edi, 1
movss xmm0, dword [esp + 0xc]
lea esi, [edi - 0xe]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x38], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x38]
add eax, edi
mov dword [esp + 0x20], eax
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movd xmm1, esi
xor esi, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movss xmm0, dword [esp + 0xc]
xorps xmm0, xmmword [0x1005bb50]
add eax, edi
cvtss2sd xmm0, xmm0
mov dword [esp + 0x38], eax
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
cvtsd2ss xmm0, xmm0
movss dword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x60]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movss xmm1, dword [esp + 0xc]
xorps xmm5, xmm5
movss xmm2, dword [0x1005b914]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm5
jb 0x1002f3c3
comiss xmm2, xmm1
jb 0x1002f3c3
movss xmm1, dword [0x1005b918]
comiss xmm1, xmm0
jb 0x1002f3a5
comiss xmm0, dword [0x1005b904]
jb 0x1002f3a5
mov esi, 2
jmp 0x1002f43e
movss xmm1, dword [0x1005b9f4]
comiss xmm1, xmm0
jb 0x1002f43e
comiss xmm0, dword [0x1005b9fc]
jb 0x1002f43e
xor esi, esi
jmp 0x1002f43e
movss xmm3, dword [0x1005b9f4]
comiss xmm1, xmm2
movss xmm2, dword [0x1005b904]
jb 0x1002f3e9
comiss xmm2, xmm0
jb 0x1002f3e9
comiss xmm0, xmm3
jb 0x1002f3e9
mov esi, 6
jmp 0x1002f43e
movss xmm4, dword [0x1005b9f8]
comiss xmm1, xmm4
jb 0x1002f429
comiss xmm5, xmm1
jb 0x1002f429
comiss xmm0, dword [0x1005b9fc]
jb 0x1002f410
comiss xmm2, xmm0
jb 0x1002f410
mov esi, 0x18
jmp 0x1002f43e
comiss xmm0, xmm2
jb 0x1002f43e
movss xmm1, dword [0x1005b918]
comiss xmm1, xmm0
jb 0x1002f43e
mov esi, 0x1a
jmp 0x1002f43e
comiss xmm4, xmm1
jbe 0x1002f43e
comiss xmm2, xmm0
jb 0x1002f43e
comiss xmm0, xmm3
mov eax, 0x1e
cmovae esi, eax
push esi
mov esi, dword [esp + 0xc]
push esi
call dword [sym.imp.GDI32.dll_SetTextAlign]
movss xmm0, dword [esp + 0x1c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
fld qword [esp + 0x60]
fld1
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
xorps xmm0, xmm0
fstp qword [esp + 0x60]
ucomisd xmm0, qword [esp + 0x60]
lahf
test ah, 0x44
jp 0x1002f49e
cvttss2si eax, dword [esp + 0x1c]
push eax
push 0x100583ec
lea eax, [esp + 0x110]
push 0xff
push eax
call fcn.100032e0
mov edi, dword [esp + 0x20]
add esp, 0x10
jmp 0x1002f4d0
movss xmm1, dword [esp + 0x1c]
lea eax, [esp + 0x108]
mov edi, dword [esp + 0x10]
sub esp, 8
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
push dword [edi + 0x4c]
push 0x100583f0
push 0xff
push eax
call fcn.100032e0
add esp, 0x18
mov edx, 0xff
lea eax, [esp + 0x108]
nop dword [eax]
cmp byte [eax], 0
je 0x1002f4eb
inc eax
sub edx, 1
jne 0x1002f4e0
mov ecx, edx
mov eax, 0xff
sub eax, edx
neg ecx
sbb ecx, ecx
and ecx, eax
xor eax, eax
test edx, edx
cmovne eax, ecx
push eax
lea eax, [esp + 0x10c]
push eax
push dword [esp + 0x40]
push dword [esp + 0x2c]
push esi
call dword [sym.imp.GDI32.dll_TextOutA]
mov edx, dword [esp + 0x18]
test edx, edx
je 0x1002f61b
mov eax, 1
mov dword [esp + 0xc], eax
cmp dword [edi + 0x80], eax
jbe 0x1002f61b
movss xmm4, dword [esp + 0x1c]
movss xmm5, dword [esp + 0x2c]
subss xmm4, xmm5
movss dword [esp + 0x38], xmm4
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push dword [esp + 0x14]
addsd xmm0, qword [eax*8 + 0x1005bb20]
mov eax, dword [edi + 0x80]
push esi
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm3, xmm4
addsd xmm0, qword [eax*8 + 0x1005bb20]
cvtpd2ps xmm0, xmm0
divss xmm3, xmm0
movss xmm0, dword [edi + 0x18]
subss xmm0, dword [edi + 0x14]
addss xmm3, xmm5
subss xmm3, dword [edi + 0x14]
divss xmm3, xmm0
movss xmm0, dword [edi + 0x10]
subss xmm0, dword [edi + 0xc]
mulss xmm3, xmm0
addss xmm3, dword [edi + 0xc]
movss dword [esp + 0x28], xmm3
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [edi + 0x64]
test edx, edx
jns 0x1002f5d3
add edx, 1
sar edx, 1
movss xmm1, dword [esp + 0x20]
lea eax, [edx - 8]
subss xmm1, dword [0x1005b9d4]
push eax
lea eax, [edx - 3]
mov ecx, esi
push eax
push edx
call fcn.100123b0
mov eax, dword [esp + 0x18]
add esp, 0xc
movss xmm4, dword [esp + 0x38]
inc eax
movss xmm5, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
cmp eax, dword [edi + 0x80]
jb 0x1002f550
mov edx, dword [esp + 0x18]
movss xmm0, dword [esp + 0x1c]
inc edx
mov ecx, dword [edi + 0x7c]
movss dword [esp + 0x2c], xmm0
mov dword [esp + 0x18], edx
cmp edx, ecx
jb 0x1002f204
push dword [esp + 0x28]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x30]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x34]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_DeleteObject]
push 1
push esi
call dword [sym.imp.GDI32.dll_SetArcDirection]
push dword [edi + 0x1c]
push 2
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
push esi
mov dword [esp + 0x34], eax
call dword [sym.imp.GDI32.dll_SelectObject]
movss xmm3, dword [edi + 0x18]
subss xmm3, dword [edi + 0x14]
movss xmm1, dword [edi + 0x10]
subss xmm1, dword [edi + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x64]
movaps xmm0, xmm3
movss dword [esp + 0x20], xmm3
divss xmm0, xmm3
lea esi, [eax - 1]
cdq
sub eax, edx
movss dword [esp + 0x38], xmm1
mulss xmm0, xmm1
addss xmm0, dword [edi + 0xc]
mov edi, eax
sar edi, 1
mov dword [esp + 0x14], edi
subss xmm0, dword [0x1005b9d4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x60]
add eax, edi
mov dword [esp + 0x30], eax
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
add eax, edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
movss xmm0, dword [eax + 0x14]
subss xmm0, xmm0
divss xmm0, dword [esp + 0x20]
mulss xmm0, dword [esp + 0x38]
addss xmm0, dword [eax + 0xc]
subss xmm0, dword [0x1005b9d4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si edi, xmm0
movsd xmm0, qword [esp + 0x60]
add edi, dword [esp + 0x14]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movd xmm1, esi
mov esi, dword [esp + 0x10]
cvtdq2pd xmm1, xmm1
mov ecx, dword [esi + 0x64]
add ecx, 0xfffffffe
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
add eax, dword [esp + 0x14]
push eax
push edi
push dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
push dword [esp + 0x3c]
push ecx
push ecx
push 2
push 2
push edi
call dword [sym.imp.GDI32.dll_Arc]
push dword [esp + 0x18]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x2c]
call dword [sym.imp.GDI32.dll_DeleteObject]
test byte [esi + 4], 0x40
je 0x1002f9e4
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
sub eax, edx
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0x18], 0
test eax, eax
je 0x1002f9e4
xor ecx, ecx
mov dword [esp + 0xc], ecx
nop dword [eax + eax]
push dword [edx + ecx + 8]
push 2
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
push edi
mov dword [esp + 0x34], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [esi + 0x84]
mov ecx, dword [esp + 0xc]
movss xmm3, dword [esi + 0x18]
subss xmm3, dword [esi + 0x14]
movss xmm1, dword [esi + 0x10]
movss xmm0, dword [ecx + edi + 4]
subss xmm0, dword [esi + 0x14]
subss xmm1, dword [esi + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x64]
movss dword [esp + 0x20], xmm3
divss xmm0, xmm3
movss dword [esp + 0x38], xmm1
mulss xmm0, xmm1
addss xmm0, dword [esi + 0xc]
lea esi, [eax - 1]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x1c], eax
subss xmm0, dword [0x1005b9d4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x60]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
add eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
movss xmm0, dword [eax + edi]
mov eax, dword [esp + 0x10]
subss xmm0, dword [eax + 0x14]
divss xmm0, dword [esp + 0x20]
mulss xmm0, dword [esp + 0x38]
addss xmm0, dword [eax + 0xc]
subss xmm0, dword [0x1005b9d4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si edi, xmm0
movsd xmm0, qword [esp + 0x60]
add edi, dword [esp + 0x1c]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movd xmm1, esi
mov esi, dword [esp + 0x10]
cvtdq2pd xmm1, xmm1
mov ecx, dword [esi + 0x64]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
add eax, dword [esp + 0x1c]
add ecx, 0xfffffffe
push eax
push edi
push dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
push dword [esp + 0x40]
push ecx
push ecx
push 2
push 2
push edi
call dword [sym.imp.GDI32.dll_Arc]
push dword [esp + 0x30]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x2c]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
sub eax, edx
mov ecx, dword [esp + 0xc]
inc dword [esp + 0x18]
add ecx, 0xc
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0xc], ecx
cmp dword [esp + 0x18], eax
jb 0x1002f820
push dword [esi + 0x24]
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
push edi
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
movss xmm3, dword [esi + 0x50]
subss xmm3, dword [esi + 0x14]
movss xmm0, dword [esi + 0x18]
subss xmm0, dword [esi + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x64]
cdq
sub eax, edx
divss xmm3, xmm0
mov edi, eax
sar edi, 1
movss xmm0, dword [esi + 0x10]
subss xmm0, dword [esi + 0xc]
mulss xmm3, xmm0
addss xmm3, dword [esi + 0xc]
lea esi, [edi - 0xf]
subss xmm3, dword [0x1005b9d4]
cvtps2pd xmm0, xmm3
movss dword [esp + 0x18], xmm3
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x60]
add eax, edi
mov dword [esp + 0xf0], eax
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [0x1005b9c8]
add eax, edi
mov dword [esp + 0xf4], eax
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
mulsd xmm0, qword [0x1005ba08]
mov ecx, edi
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x60]
sub ecx, eax
mov dword [esp + 0xf8], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
mulsd xmm0, qword [0x1005ba08]
mov ecx, edi
cvttsd2si eax, xmm0
movss xmm0, dword [esp + 0x18]
addss xmm0, dword [0x1005b9c8]
sub ecx, eax
mov dword [esp + 0xfc], ecx
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1005b970]
divsd xmm0, qword [0x1005b998]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x60], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
mulsd xmm0, qword [0x1005ba08]
mov ecx, edi
cvttsd2si eax, xmm0
movsd xmm0, qword [esp + 0x60]
sub ecx, eax
mov dword [esp + 0x100], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
mulsd xmm0, qword [0x1005ba08]
push 3
cvttsd2si eax, xmm0
sub edi, eax
lea eax, [esp + 0xf4]
mov dword [esp + 0x108], edi
mov edi, dword [esp + 0xc]
push eax
push edi
call dword [sym.imp.GDI32.dll_Polygon]
push dword [esp + 0x20]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push edi
call esi
push dword [esp + 0x38]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x14]
push edi
call esi
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
push 7
call esi
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push 4
mov edi, eax
call esi
push eax
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x64]
cdq
sub eax, edx
sar eax, 1
lea ecx, [eax + 2]
add eax, 0xfffffffe
push ecx
push ecx
push eax
push eax
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_Ellipse]
push edi
push dword [esp + 0xc]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
call edi
push esi
mov esi, dword [esp + 0xc]
push esi
call edi
push 0xff
push 2
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov edi, eax
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x64]
cdq
sub eax, edx
sar eax, 1
lea ecx, [eax - 6]
push ecx
lea ecx, [eax - 2]
push ecx
push eax
movss xmm1, dword [esp + 0x24]
mov edx, eax
mov ecx, dword [esp + 0x14]
call fcn.100123b0
add esp, 0xc
push esi
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 8]
push 0xcc0020
push 0
mov eax, dword [esi + 0x64]
push 0
push edi
push eax
push eax
push 0
push 0
push dword [esp + 0x64]
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [esp + 0x28]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esi + 0x68]
test eax, eax
je 0x1002fcb4
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x70]
test eax, eax
je 0x1002fcc2
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x1002fcd0
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x74]
test eax, eax
je 0x1002fcde
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x78]
test eax, eax
je 0x1002fcec
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x48]
mov dword [esi + 0x68], 0
push edi
mov dword [esi + 0x70], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x4c]
call dword [sym.imp.GDI32.dll_DeleteObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
lea eax, [esp + 0xb0]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_EndPaint]
mov ecx, dword [esp + 0x20c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.100076a5
mov esp, ebp
pop ebp
ret 8