4f636c:	8b 43 0c             	mov    0xc(%ebx),%eax
4f636f:	50                   	push   %eax
4f6370:	8b 45 08             	mov    0x8(%ebp),%eax
4f6373:	8b 48 ec             	mov    -0x14(%eax),%ecx
4f6376:	33 d2                	xor    %edx,%edx
4f6378:	33 c0                	xor    %eax,%eax
4f637a:	e8 49 36 fe ff       	call   0x4d99c8
4f637f:	83 7b 04 03          	cmpl   $0x3,0x4(%ebx)
4f6383:	75 36                	jne    0x4f63bb
4f6385:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)
4f6389:	75 30                	jne    0x4f63bb
4f638b:	8b 45 08             	mov    0x8(%ebp),%eax
4f638e:	48                   	dec    %eax
4f638f:	50                   	push   %eax
4f6390:	8b 45 08             	mov    0x8(%ebp),%eax
4f6393:	83 c0 f8             	add    $0xfffffff8,%eax
4f6396:	50                   	push   %eax
4f6397:	8b 45 08             	mov    0x8(%ebp),%eax
4f639a:	83 c0 f4             	add    $0xfffffff4,%eax
4f639d:	50                   	push   %eax
4f639e:	8b 45 08             	mov    0x8(%ebp),%eax
4f63a1:	8b 40 08             	mov    0x8(%eax),%eax
4f63a4:	8b 40 28             	mov    0x28(%eax),%eax
4f63a7:	50                   	push   %eax
4f63a8:	8b 43 0c             	mov    0xc(%ebx),%eax
4f63ab:	50                   	push   %eax
4f63ac:	8b 45 08             	mov    0x8(%ebp),%eax
4f63af:	8b 48 ec             	mov    -0x14(%eax),%ecx
4f63b2:	33 d2                	xor    %edx,%edx
4f63b4:	33 c0                	xor    %eax,%eax
4f63b6:	e8 4d 39 fe ff       	call   0x4d9d08
4f63bb:	83 7b 04 04          	cmpl   $0x4,0x4(%ebx)
4f63bf:	75 30                	jne    0x4f63f1
4f63c1:	8b 45 08             	mov    0x8(%ebp),%eax
4f63c4:	48                   	dec    %eax
4f63c5:	50                   	push   %eax
4f63c6:	8b 45 08             	mov    0x8(%ebp),%eax
4f63c9:	83 c0 f8             	add    $0xfffffff8,%eax
4f63cc:	50                   	push   %eax
4f63cd:	8b 45 08             	mov    0x8(%ebp),%eax
4f63d0:	83 c0 f4             	add    $0xfffffff4,%eax
4f63d3:	50                   	push   %eax
4f63d4:	8b 45 08             	mov    0x8(%ebp),%eax
4f63d7:	8b 40 08             	mov    0x8(%eax),%eax
4f63da:	8b 40 28             	mov    0x28(%eax),%eax
4f63dd:	50                   	push   %eax
4f63de:	8b 43 0c             	mov    0xc(%ebx),%eax
4f63e1:	50                   	push   %eax
4f63e2:	8b 45 08             	mov    0x8(%ebp),%eax
4f63e5:	8b 48 ec             	mov    -0x14(%eax),%ecx
4f63e8:	33 d2                	xor    %edx,%edx
4f63ea:	33 c0                	xor    %eax,%eax
4f63ec:	e8 87 3a fe ff       	call   0x4d9e78
4f63f1:	83 7b 04 05          	cmpl   $0x5,0x4(%ebx)
4f63f5:	75 13                	jne    0x4f640a
4f63f7:	8b 45 08             	mov    0x8(%ebp),%eax
4f63fa:	83 c0 f0             	add    $0xfffffff0,%eax
4f63fd:	50                   	push   %eax
4f63fe:	8b 45 08             	mov    0x8(%ebp),%eax
4f6401:	8b 48 ec             	mov    -0x14(%eax),%ecx
4f6404:	33 d2                	xor    %edx,%edx
4f6406:	33 c0                	xor    %eax,%eax
4f6408:	ff 13                	call   *(%ebx)
4f640a:	5b                   	pop    %ebx
4f640b:	5d                   	pop    %ebp
4f640c:	c3                   	ret
4f640d:	8d 40 00             	lea    0x0(%eax),%eax
4f6410:	55                   	push   %ebp
4f6411:	8b ec                	mov    %esp,%ebp
4f6413:	81 c4 7c ff ff ff    	add    $0xffffff7c,%esp
4f6419:	53                   	push   %ebx
4f641a:	56                   	push   %esi
4f641b:	57                   	push   %edi
4f641c:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4f641f:	8b da                	mov    %edx,%ebx
4f6421:	89 45 ec             	mov    %eax,-0x14(%ebp)
4f6424:	8b 45 0c             	mov    0xc(%ebp),%eax
4f6427:	83 78 04 07          	cmpl   $0x7,0x4(%eax)
4f642b:	75 11                	jne    0x4f643e
4f642d:	be 01 00 00 00       	mov    $0x1,%esi
4f6432:	8b c3                	mov    %ebx,%eax
4f6434:	8b 10                	mov    (%eax),%edx
4f6436:	ff 52 08             	call   *0x8(%edx)
4f6439:	89 45 9c             	mov    %eax,-0x64(%ebp)
4f643c:	eb 66                	jmp    0x4f64a4
4f643e:	8b c3                	mov    %ebx,%eax
4f6440:	8b 10                	mov    (%eax),%edx
4f6442:	ff 52 08             	call   *0x8(%edx)
4f6445:	8b f0                	mov    %eax,%esi
4f6447:	8b c3                	mov    %ebx,%eax
4f6449:	8b 10                	mov    (%eax),%edx
4f644b:	ff 52 14             	call   *0x14(%edx)
4f644e:	0f af f0             	imul   %eax,%esi
4f6451:	8b c6                	mov    %esi,%eax
4f6453:	85 c0                	test   %eax,%eax
4f6455:	79 05                	jns    0x4f645c
4f6457:	05 ff ff 07 00       	add    $0x7ffff,%eax
4f645c:	c1 f8 13             	sar    $0x13,%eax
4f645f:	ba 01 00 00 00       	mov    $0x1,%edx
4f6464:	e8 ab 2f 0b 00       	call   0x5a9414
4f6469:	8b f0                	mov    %eax,%esi
4f646b:	8b c3                	mov    %ebx,%eax
4f646d:	8b 10                	mov    (%eax),%edx
4f646f:	ff 52 08             	call   *0x8(%edx)
4f6472:	99                   	cltd
4f6473:	f7 fe                	idiv   %esi
4f6475:	89 45 9c             	mov    %eax,-0x64(%ebp)
4f6478:	8b c3                	mov    %ebx,%eax
4f647a:	8b 10                	mov    (%eax),%edx
4f647c:	ff 52 08             	call   *0x8(%edx)
4f647f:	89 45 80             	mov    %eax,-0x80(%ebp)
4f6482:	db 45 80             	fildl  -0x80(%ebp)
4f6485:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
4f648b:	db 85 7c ff ff ff    	fildl  -0x84(%ebp)
4f6491:	de f9                	fdivrp %st,%st(1)
4f6493:	e8 04 c8 f0 ff       	call   0x402c9c
4f6498:	d8 1d 20 74 4f 00    	fcomps 0x4f7420
4f649e:	df e0                	fnstsw %ax
4f64a0:	9e                   	sahf
4f64a1:	76 01                	jbe    0x4f64a4
4f64a3:	46                   	inc    %esi
4f64a4:	8b c6                	mov    %esi,%eax
4f64a6:	03 c0                	add    %eax,%eax
4f64a8:	8b f8                	mov    %eax,%edi
4f64aa:	c1 e7 02             	shl    $0x2,%edi
4f64ad:	8b c7                	mov    %edi,%eax
4f64af:	e8 f8 c2 f0 ff       	call   0x4027ac
4f64b4:	89 45 90             	mov    %eax,-0x70(%ebp)
4f64b7:	8b c7                	mov    %edi,%eax
4f64b9:	e8 ee c2 f0 ff       	call   0x4027ac
4f64be:	89 45 8c             	mov    %eax,-0x74(%ebp)
4f64c1:	33 f6                	xor    %esi,%esi
4f64c3:	8b 45 0c             	mov    0xc(%ebp),%eax
4f64c6:	0f b6 40 10          	movzbl 0x10(%eax),%eax
4f64ca:	83 f8 07             	cmp    $0x7,%eax
4f64cd:	77 6f                	ja     0x4f653e
4f64cf:	ff 24 85 d6 64 4f 00 	jmp    *0x4f64d6(,%eax,4)
4f64d6:	f6 64 4f 00          	mulb   0x0(%edi,%ecx,2)
4f64da:	ff 64 4f 00          	jmp    *0x0(%edi,%ecx,2)
4f64de:	08 65 4f             	or     %ah,0x4f(%ebp)
4f64e1:	00 11                	add    %dl,(%ecx)
4f64e3:	65 4f                	gs dec %edi
4f64e5:	00 1a                	add    %bl,(%edx)
4f64e7:	65 4f                	gs dec %edi
4f64e9:	00 23                	add    %ah,(%ebx)
4f64eb:	65 4f                	gs dec %edi
4f64ed:	00 2c 65 4f 00 35 65 	add    %ch,0x6535004f(,%eiz,2)
4f64f4:	4f                   	dec    %edi
4f64f5:	00 c7                	add    %al,%bh
4f64f7:	45                   	inc    %ebp
4f64f8:	a8 01                	test   $0x1,%al
4f64fa:	00 00                	add    %al,(%eax)
4f64fc:	00 eb                	add    %ch,%bl
4f64fe:	46                   	inc    %esi
4f64ff:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
4f6506:	eb 3d                	jmp    0x4f6545
4f6508:	c7 45 a8 03 00 00 00 	movl   $0x3,-0x58(%ebp)
4f650f:	eb 34                	jmp    0x4f6545
4f6511:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
4f6518:	eb 2b                	jmp    0x4f6545
4f651a:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
4f6521:	eb 22                	jmp    0x4f6545
4f6523:	c7 45 a8 04 00 00 00 	movl   $0x4,-0x58(%ebp)
4f652a:	eb 19                	jmp    0x4f6545
4f652c:	c7 45 a8 03 00 00 00 	movl   $0x3,-0x58(%ebp)
4f6533:	eb 10                	jmp    0x4f6545
4f6535:	c7 45 a8 03 00 00 00 	movl   $0x3,-0x58(%ebp)
4f653c:	eb 07                	jmp    0x4f6545
4f653e:	c7 45 a8 03 00 00 00 	movl   $0x3,-0x58(%ebp)
4f6545:	8b c3                	mov    %ebx,%eax
4f6547:	e8 bc 13 10 00       	call   0x5f7908
4f654c:	84 c0                	test   %al,%al
4f654e:	74 3b                	je     0x4f658b
4f6550:	8b c3                	mov    %ebx,%eax
4f6552:	e8 81 13 10 00       	call   0x5f78d8
4f6557:	80 78 43 00          	cmpb   $0x0,0x43(%eax)
4f655b:	75 2e                	jne    0x4f658b
4f655d:	83 7d a8 03          	cmpl   $0x3,-0x58(%ebp)
4f6561:	75 28                	jne    0x4f658b
4f6563:	8b 7d 0c             	mov    0xc(%ebp),%edi
4f6566:	8b 7f 04             	mov    0x4(%edi),%edi
4f6569:	83 ff 01             	cmp    $0x1,%edi
4f656c:	74 13                	je     0x4f6581
4f656e:	8b 45 0c             	mov    0xc(%ebp),%eax
4f6571:	81 ff 05 80 00 00    	cmp    $0x8005,%edi
4f6577:	74 08                	je     0x4f6581
4f6579:	8b 45 0c             	mov    0xc(%ebp),%eax
4f657c:	83 ff 05             	cmp    $0x5,%edi
4f657f:	75 0a                	jne    0x4f658b
4f6581:	8b 45 0c             	mov    0xc(%ebp),%eax
4f6584:	c6 40 2c 01          	movb   $0x1,0x2c(%eax)
4f6588:	ff 45 a8             	incl   -0x58(%ebp)
4f658b:	8b c3                	mov    %ebx,%eax
4f658d:	8b 10                	mov    (%eax),%edx
4f658f:	ff 52 0c             	call   *0xc(%edx)
4f6592:	48                   	dec    %eax
4f6593:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f6596:	8b c3                	mov    %ebx,%eax
4f6598:	8b 10                	mov    (%eax),%edx
4f659a:	ff 52 08             	call   *0x8(%edx)
4f659d:	48                   	dec    %eax
4f659e:	89 45 a0             	mov    %eax,-0x60(%ebp)
4f65a1:	33 c0                	xor    %eax,%eax
4f65a3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4f65a6:	8b 45 0c             	mov    0xc(%ebp),%eax
4f65a9:	83 78 04 07          	cmpl   $0x7,0x4(%eax)
4f65ad:	75 3a                	jne    0x4f65e9
4f65af:	8b 45 ec             	mov    -0x14(%ebp),%eax
4f65b2:	e8 01 81 f2 ff       	call   0x41e6b8
4f65b7:	8b 55 90             	mov    -0x70(%ebp),%edx
4f65ba:	89 02                	mov    %eax,(%edx)
4f65bc:	8b 45 08             	mov    0x8(%ebp),%eax
4f65bf:	50                   	push   %eax
4f65c0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4f65c3:	8b d3                	mov    %ebx,%edx
4f65c5:	8b 45 ec             	mov    -0x14(%ebp),%eax
4f65c8:	e8 1b fd ff ff       	call   0x4f62e8
4f65cd:	8b 45 ec             	mov    -0x14(%ebp),%eax
4f65d0:	e8 e3 80 f2 ff       	call   0x41e6b8
4f65d5:	8b 55 90             	mov    -0x70(%ebp),%edx
4f65d8:	2b 02                	sub    (%edx),%eax
4f65da:	8b 55 8c             	mov    -0x74(%ebp),%edx
4f65dd:	89 02                	mov    %eax,(%edx)
4f65df:	be 01 00 00 00       	mov    $0x1,%esi
4f65e4:	e9 9f 0d 00 00       	jmp    0x4f7388
4f65e9:	8b c3                	mov    %ebx,%eax
4f65eb:	8b 10                	mov    (%eax),%edx
4f65ed:	ff 52 10             	call   *0x10(%edx)
4f65f0:	fe c8                	dec    %al
4f65f2:	0f 84 f4 0a 00 00    	je     0x4f70ec
4f65f8:	48                   	dec    %eax
4f65f9:	2c 03                	sub    $0x3,%al
4f65fb:	72 13                	jb     0x4f6610
4f65fd:	0f 84 f1 02 00 00    	je     0x4f68f4
4f6603:	2c 03                	sub    $0x3,%al
4f6605:	0f 84 4b 08 00 00    	je     0x4f6e56
4f660b:	e9 78 0d 00 00       	jmp    0x4f7388
4f6610:	8b 45 0c             	mov    0xc(%ebp),%eax
4f6613:	83 78 04 07          	cmpl   $0x7,0x4(%eax)
4f6617:	0f 84 f8 0d 00 00    	je     0x4f7415
4f661d:	8b c3                	mov    %ebx,%eax
4f661f:	8b 10                	mov    (%eax),%edx
4f6621:	ff 52 0c             	call   *0xc(%edx)
4f6624:	8b 55 0c             	mov    0xc(%ebp),%edx
4f6627:	8b 52 1c             	mov    0x1c(%edx),%edx
4f662a:	0f af 55 a8          	imul   -0x58(%ebp),%edx
4f662e:	f7 ea                	imul   %edx
4f6630:	89 45 e0             	mov    %eax,-0x20(%ebp)
4f6633:	f6 45 e0 07          	testb  $0x7,-0x20(%ebp)
4f6637:	74 13                	je     0x4f664c
4f6639:	8b 45 e0             	mov    -0x20(%ebp),%eax
4f663c:	85 c0                	test   %eax,%eax
4f663e:	79 03                	jns    0x4f6643
4f6640:	83 c0 07             	add    $0x7,%eax
4f6643:	c1 f8 03             	sar    $0x3,%eax
4f6646:	40                   	inc    %eax
4f6647:	89 45 e0             	mov    %eax,-0x20(%ebp)
4f664a:	eb 10                	jmp    0x4f665c
4f664c:	8b 45 e0             	mov    -0x20(%ebp),%eax
4f664f:	85 c0                	test   %eax,%eax
4f6651:	79 03                	jns    0x4f6656
4f6653:	83 c0 07             	add    $0x7,%eax
4f6656:	c1 f8 03             	sar    $0x3,%eax
4f6659:	89 45 e0             	mov    %eax,-0x20(%ebp)
4f665c:	8b c3                	mov    %ebx,%eax
4f665e:	8b 10                	mov    (%eax),%edx
4f6660:	ff 52 08             	call   *0x8(%edx)
4f6663:	89 45 80             	mov    %eax,-0x80(%ebp)
4f6666:	db 45 80             	fildl  -0x80(%ebp)
4f6669:	d8 3d 24 74 4f 00    	fdivrs 0x4f7424
4f666f:	8b 45 08             	mov    0x8(%ebp),%eax
4f6672:	dd 58 18             	fstpl  0x18(%eax)
4f6675:	9b                   	fwait
4f6676:	8b c3                	mov    %ebx,%eax
4f6678:	8b 10                	mov    (%eax),%edx
4f667a:	ff 52 0c             	call   *0xc(%edx)
4f667d:	8b f8                	mov    %eax,%edi
4f667f:	0f af 7d a8          	imul   -0x58(%ebp),%edi
4f6683:	8b 55 0c             	mov    0xc(%ebp),%edx
4f6686:	8b 52 1c             	mov    0x1c(%edx),%edx
4f6689:	85 d2                	test   %edx,%edx
4f668b:	79 03                	jns    0x4f6690
4f668d:	83 c2 07             	add    $0x7,%edx
4f6690:	c1 fa 03             	sar    $0x3,%edx
4f6693:	b8 01 00 00 00       	mov    $0x1,%eax
4f6698:	e8 77 2d 0b 00       	call   0x5a9414
4f669d:	0f af f8             	imul   %eax,%edi
4f66a0:	8b c7                	mov    %edi,%eax
4f66a2:	83 c0 04             	add    $0x4,%eax
4f66a5:	e8 02 c1 f0 ff       	call   0x4027ac
4f66aa:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4f66ad:	33 c0                	xor    %eax,%eax
4f66af:	89 45 98             	mov    %eax,-0x68(%ebp)
4f66b2:	33 c0                	xor    %eax,%eax
4f66b4:	89 45 94             	mov    %eax,-0x6c(%ebp)
4f66b7:	8b 45 ec             	mov    -0x14(%ebp),%eax
4f66ba:	e8 f9 7f f2 ff       	call   0x41e6b8
4f66bf:	8b 55 90             	mov    -0x70(%ebp),%edx
4f66c2:	89 02                	mov    %eax,(%edx)
4f66c4:	8b 45 a0             	mov    -0x60(%ebp),%eax
4f66c7:	85 c0                	test   %eax,%eax
4f66c9:	0f 8c 18 02 00 00    	jl     0x4f68e7
4f66cf:	40                   	inc    %eax
4f66d0:	89 45 84             	mov    %eax,-0x7c(%ebp)
4f66d3:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
4f66da:	8b 45 08             	mov    0x8(%ebp),%eax
4f66dd:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
4f66e2:	74 1e                	je     0x4f6702
4f66e4:	db 45 e4             	fildl  -0x1c(%ebp)
4f66e7:	8b 45 08             	mov    0x8(%ebp),%eax
4f66ea:	dc 48 18             	fmull  0x18(%eax)
4f66ed:	e8 da c5 f0 ff       	call   0x402ccc
4f66f2:	8b c8                	mov    %eax,%ecx
4f66f4:	8b 7d 08             	mov    0x8(%ebp),%edi
4f66f7:	8b 55 08             	mov    0x8(%ebp),%edx
4f66fa:	8b 52 08             	mov    0x8(%edx),%edx
4f66fd:	8b 47 04             	mov    0x4(%edi),%eax
4f6700:	ff 17                	call   *(%edi)
4f6702:	8b 45 0c             	mov    0xc(%ebp),%eax
4f6705:	83 78 1c 08          	cmpl   $0x8,0x1c(%eax)
4f6709:	75 36                	jne    0x4f6741
4f670b:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4f670e:	8b c3                	mov    %ebx,%eax
4f6710:	8b 08                	mov    (%eax),%ecx
4f6712:	ff 11                	call   *(%ecx)
4f6714:	89 45 ac             	mov    %eax,-0x54(%ebp)
4f6717:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4f671a:	89 45 d0             	mov    %eax,-0x30(%ebp)
4f671d:	8b 7d a4             	mov    -0x5c(%ebp),%edi
4f6720:	85 ff                	test   %edi,%edi
4f6722:	0f 8c f3 00 00 00    	jl     0x4f681b
4f6728:	47                   	inc    %edi
4f6729:	8b 45 ac             	mov    -0x54(%ebp),%eax
4f672c:	8a 00                	mov    (%eax),%al
4f672e:	8b 55 d0             	mov    -0x30(%ebp),%edx
4f6731:	88 02                	mov    %al,(%edx)
4f6733:	ff 45 ac             	incl   -0x54(%ebp)
4f6736:	ff 45 d0             	incl   -0x30(%ebp)
4f6739:	4f                   	dec    %edi
4f673a:	75 ed                	jne    0x4f6729
4f673c:	e9 da 00 00 00       	jmp    0x4f681b
4f6741:	8b 45 0c             	mov    0xc(%ebp),%eax
4f6744:	83 78 1c 10          	cmpl   $0x10,0x1c(%eax)
4f6748:	75 3a                	jne    0x4f6784
4f674a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4f674d:	8b c3                	mov    %ebx,%eax
4f674f:	8b 08                	mov    (%eax),%ecx
4f6751:	ff 11                	call   *(%ecx)
4f6753:	89 45 88             	mov    %eax,-0x78(%ebp)
4f6756:	8b 45 d4             	mov    -0x2c(%ebp),%eax