4154c8:	0f 49 f0             	cmovns %eax,%esi
4154cb:	56                   	push   %esi
4154cc:	68 09 02 00 00       	push   $0x209
4154d1:	68 b0 3f 45 00       	push   $0x453fb0
4154d6:	e8 f8 e2 fe ff       	call   0x4037d3
4154db:	68 f0 43 45 00       	push   $0x4543f0
4154e0:	e9 c5 00 00 00       	jmp    0x4155aa
4154e5:	ff d7                	call   *%edi
4154e7:	0f b7 f0             	movzwl %ax,%esi
4154ea:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4154f0:	85 c0                	test   %eax,%eax
4154f2:	0f 4e f0             	cmovle %eax,%esi
4154f5:	b8 05 40 00 80       	mov    $0x80004005,%eax
4154fa:	85 f6                	test   %esi,%esi
4154fc:	0f 49 f0             	cmovns %eax,%esi
4154ff:	56                   	push   %esi
415500:	68 04 02 00 00       	push   $0x204
415505:	68 b0 3f 45 00       	push   $0x453fb0
41550a:	e8 c4 e2 fe ff       	call   0x4037d3
41550f:	68 d0 43 45 00       	push   $0x4543d0
415514:	e9 91 00 00 00       	jmp    0x4155aa
415519:	ff d7                	call   *%edi
41551b:	0f b7 f0             	movzwl %ax,%esi
41551e:	81 ce 00 00 07 80    	or     $0x80070000,%esi
415524:	85 c0                	test   %eax,%eax
415526:	0f 4e f0             	cmovle %eax,%esi
415529:	b8 05 40 00 80       	mov    $0x80004005,%eax
41552e:	85 f6                	test   %esi,%esi
415530:	0f 49 f0             	cmovns %eax,%esi
415533:	56                   	push   %esi
415534:	68 ff 01 00 00       	push   $0x1ff
415539:	68 b0 3f 45 00       	push   $0x453fb0
41553e:	e8 90 e2 fe ff       	call   0x4037d3
415543:	68 a8 43 45 00       	push   $0x4543a8
415548:	eb 60                	jmp    0x4155aa
41554a:	ff d7                	call   *%edi
41554c:	0f b7 f0             	movzwl %ax,%esi
41554f:	81 ce 00 00 07 80    	or     $0x80070000,%esi
415555:	85 c0                	test   %eax,%eax
415557:	0f 4e f0             	cmovle %eax,%esi
41555a:	b8 05 40 00 80       	mov    $0x80004005,%eax
41555f:	85 f6                	test   %esi,%esi
415561:	0f 49 f0             	cmovns %eax,%esi
415564:	56                   	push   %esi
415565:	68 f9 01 00 00       	push   $0x1f9
41556a:	68 b0 3f 45 00       	push   $0x453fb0
41556f:	e8 5f e2 fe ff       	call   0x4037d3
415574:	68 84 43 45 00       	push   $0x454384
415579:	eb 2f                	jmp    0x4155aa
41557b:	ff d7                	call   *%edi
41557d:	0f b7 f0             	movzwl %ax,%esi
415580:	81 ce 00 00 07 80    	or     $0x80070000,%esi
415586:	85 c0                	test   %eax,%eax
415588:	0f 4e f0             	cmovle %eax,%esi
41558b:	b8 05 40 00 80       	mov    $0x80004005,%eax
415590:	85 f6                	test   %esi,%esi
415592:	0f 49 f0             	cmovns %eax,%esi
415595:	56                   	push   %esi
415596:	68 ce 01 00 00       	push   $0x1ce
41559b:	68 b0 3f 45 00       	push   $0x453fb0
4155a0:	e8 2e e2 fe ff       	call   0x4037d3
4155a5:	68 30 43 45 00       	push   $0x454330
4155aa:	56                   	push   %esi
4155ab:	e8 7f ab 02 00       	call   0x44012f
4155b0:	59                   	pop    %ecx
4155b1:	59                   	pop    %ecx
4155b2:	5f                   	pop    %edi
4155b3:	8b c6                	mov    %esi,%eax
4155b5:	5e                   	pop    %esi
4155b6:	5b                   	pop    %ebx
4155b7:	8b e5                	mov    %ebp,%esp
4155b9:	5d                   	pop    %ebp
4155ba:	c2 04 00             	ret    $0x4
4155bd:	55                   	push   %ebp
4155be:	8b ec                	mov    %esp,%ebp
4155c0:	51                   	push   %ecx
4155c1:	8b 45 08             	mov    0x8(%ebp),%eax
4155c4:	53                   	push   %ebx
4155c5:	56                   	push   %esi
4155c6:	57                   	push   %edi
4155c7:	8b 48 04             	mov    0x4(%eax),%ecx
4155ca:	33 db                	xor    %ebx,%ebx
4155cc:	8b 38                	mov    (%eax),%edi
4155ce:	8b 40 08             	mov    0x8(%eax),%eax
4155d1:	53                   	push   %ebx
4155d2:	53                   	push   %ebx
4155d3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4155d6:	89 45 08             	mov    %eax,0x8(%ebp)
4155d9:	ff 15 b0 b3 44 00    	call   *0x44b3b0
4155df:	8b f0                	mov    %eax,%esi
4155e1:	85 f6                	test   %esi,%esi
4155e3:	79 0f                	jns    0x4155f4
4155e5:	68 74 5e 45 00       	push   $0x455e74
4155ea:	56                   	push   %esi
4155eb:	e8 3f ab 02 00       	call   0x44012f
4155f0:	59                   	pop    %ecx
4155f1:	59                   	pop    %ecx
4155f2:	eb 2e                	jmp    0x415622
4155f4:	ff 75 08             	push   0x8(%ebp)
4155f7:	8d 87 10 04 00 00    	lea    0x410(%edi),%eax
4155fd:	33 db                	xor    %ebx,%ebx
4155ff:	ff 75 fc             	push   -0x4(%ebp)
415602:	43                   	inc    %ebx
415603:	ff b7 b4 04 00 00    	push   0x4b4(%edi)
415609:	50                   	push   %eax
41560a:	8d 87 88 00 00 00    	lea    0x88(%edi),%eax
415610:	50                   	push   %eax
415611:	8d 87 b8 00 00 00    	lea    0xb8(%edi),%eax
415617:	50                   	push   %eax
415618:	ff 77 4c             	push   0x4c(%edi)
41561b:	e8 d6 5c 01 00       	call   0x42b2f6
415620:	8b f0                	mov    %eax,%esi
415622:	56                   	push   %esi
415623:	8d 87 b8 00 00 00    	lea    0xb8(%edi),%eax
415629:	50                   	push   %eax
41562a:	e8 ed 7e ff ff       	call   0x40d51c
41562f:	85 db                	test   %ebx,%ebx
415631:	74 06                	je     0x415639
415633:	ff 15 ac b3 44 00    	call   *0x44b3ac
415639:	5f                   	pop    %edi
41563a:	8b c6                	mov    %esi,%eax
41563c:	5e                   	pop    %esi
41563d:	5b                   	pop    %ebx
41563e:	8b e5                	mov    %ebp,%esp
415640:	5d                   	pop    %ebp
415641:	c2 04 00             	ret    $0x4
415644:	55                   	push   %ebp
415645:	8b ec                	mov    %esp,%ebp
415647:	83 ec 14             	sub    $0x14,%esp
41564a:	53                   	push   %ebx
41564b:	56                   	push   %esi
41564c:	57                   	push   %edi
41564d:	8b 7d 08             	mov    0x8(%ebp),%edi
415650:	33 db                	xor    %ebx,%ebx
415652:	0f 57 c0             	xorps  %xmm0,%xmm0
415655:	89 5d fc             	mov    %ebx,-0x4(%ebp)
415658:	8b f3                	mov    %ebx,%esi
41565a:	89 5d f4             	mov    %ebx,-0xc(%ebp)
41565d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
415660:	8b 47 24             	mov    0x24(%edi),%eax
415663:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
415668:	85 c0                	test   %eax,%eax
41566a:	0f 84 dc 00 00 00    	je     0x41574c
415670:	66 39 18             	cmp    %bx,(%eax)
415673:	0f 84 d3 00 00 00    	je     0x41574c
415679:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41567c:	51                   	push   %ecx
41567d:	50                   	push   %eax
41567e:	ff 77 14             	push   0x14(%edi)
415681:	e8 03 4b 00 00       	call   0x41a189
415686:	8b f0                	mov    %eax,%esi
415688:	85 f6                	test   %esi,%esi
41568a:	79 12                	jns    0x41569e
41568c:	68 28 5e 45 00       	push   $0x455e28
415691:	56                   	push   %esi
415692:	e8 98 aa 02 00       	call   0x44012f
415697:	59                   	pop    %ecx
415698:	59                   	pop    %ecx
415699:	e9 b4 00 00 00       	jmp    0x415752
41569e:	53                   	push   %ebx
41569f:	ff 75 fc             	push   -0x4(%ebp)
4156a2:	e8 3b ea fe ff       	call   0x4040e2
4156a7:	85 c0                	test   %eax,%eax
4156a9:	0f 84 9d 00 00 00    	je     0x41574c
4156af:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
4156b6:	39 9f 80 00 00 00    	cmp    %ebx,0x80(%edi)
4156bc:	0f 86 8a 00 00 00    	jbe    0x41574c
4156c2:	8b 47 7c             	mov    0x7c(%edi),%eax
4156c5:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4156c8:	89 45 08             	mov    %eax,0x8(%ebp)
4156cb:	51                   	push   %ecx
4156cc:	8b 04 d8             	mov    (%eax,%ebx,8),%eax
4156cf:	ff 70 18             	push   0x18(%eax)
4156d2:	ff 75 fc             	push   -0x4(%ebp)
4156d5:	e8 9f d6 fe ff       	call   0x402d79
4156da:	8b f0                	mov    %eax,%esi
4156dc:	85 f6                	test   %esi,%esi
4156de:	0f 88 95 00 00 00    	js     0x415779
4156e4:	8d 45 ec             	lea    -0x14(%ebp),%eax
4156e7:	50                   	push   %eax
4156e8:	ff 75 f8             	push   -0x8(%ebp)
4156eb:	e8 50 f1 02 00       	call   0x444840
4156f0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4156f3:	8b f0                	mov    %eax,%esi
4156f5:	85 f6                	test   %esi,%esi
4156f7:	78 26                	js     0x41571f
4156f9:	8b 14 d9             	mov    (%ecx,%ebx,8),%edx
4156fc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4156ff:	3b 42 10             	cmp    0x10(%edx),%eax
415702:	75 08                	jne    0x41570c
415704:	8b 45 f0             	mov    -0x10(%ebp),%eax
415707:	3b 42 14             	cmp    0x14(%edx),%eax
41570a:	74 05                	je     0x415711
41570c:	be 70 05 07 80       	mov    $0x80070570,%esi
415711:	85 f6                	test   %esi,%esi
415713:	78 0a                	js     0x41571f
415715:	c7 44 d9 04 01 00 00 	movl   $0x1,0x4(%ecx,%ebx,8)
41571c:	00
41571d:	eb 20                	jmp    0x41573f
41571f:	8b 04 d9             	mov    (%ecx,%ebx,8),%eax
415722:	56                   	push   %esi
415723:	ff 30                	push   (%eax)
415725:	ff 37                	push   (%edi)
415727:	68 78 00 00 a0       	push   $0xa0000078
41572c:	6a 02                	push   $0x2
41572e:	e8 dc fd fe ff       	call   0x40550f
415733:	83 c4 14             	add    $0x14,%esp
415736:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
41573d:	33 f6                	xor    %esi,%esi
41573f:	43                   	inc    %ebx
415740:	3b 9f 80 00 00 00    	cmp    0x80(%edi),%ebx
415746:	0f 82 76 ff ff ff    	jb     0x4156c2
41574c:	8b 45 f4             	mov    -0xc(%ebp),%eax
41574f:	89 47 44             	mov    %eax,0x44(%edi)
415752:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
415756:	74 08                	je     0x415760
415758:	ff 75 f8             	push   -0x8(%ebp)
41575b:	e8 8f fd 02 00       	call   0x4454ef
415760:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
415764:	74 08                	je     0x41576e
415766:	ff 75 fc             	push   -0x4(%ebp)
415769:	e8 81 fd 02 00       	call   0x4454ef
41576e:	5f                   	pop    %edi
41576f:	8b c6                	mov    %esi,%eax
415771:	5e                   	pop    %esi
415772:	5b                   	pop    %ebx
415773:	8b e5                	mov    %ebp,%esp
415775:	5d                   	pop    %ebp
415776:	c2 04 00             	ret    $0x4
415779:	68 4c 5e 45 00       	push   $0x455e4c
41577e:	e9 0e ff ff ff       	jmp    0x415691
415783:	55                   	push   %ebp
415784:	8b ec                	mov    %esp,%ebp
415786:	56                   	push   %esi
415787:	8b 75 08             	mov    0x8(%ebp),%esi
41578a:	85 f6                	test   %esi,%esi
41578c:	74 36                	je     0x4157c4
41578e:	ff 76 6c             	push   0x6c(%esi)
415791:	e8 71 e5 ff ff       	call   0x413d07
415796:	50                   	push   %eax
415797:	ff 76 60             	push   0x60(%esi)
41579a:	e8 11 e4 ff ff       	call   0x413bb0
41579f:	50                   	push   %eax
4157a0:	ff 76 5c             	push   0x5c(%esi)
4157a3:	e8 08 e4 ff ff       	call   0x413bb0
4157a8:	50                   	push   %eax
4157a9:	ff 76 50             	push   0x50(%esi)
4157ac:	e8 1c ea ff ff       	call   0x4141cd
4157b1:	50                   	push   %eax
4157b2:	ff 76 4c             	push   0x4c(%esi)
4157b5:	e8 13 ea ff ff       	call   0x4141cd
4157ba:	50                   	push   %eax
4157bb:	ff 36                	push   (%esi)
4157bd:	68 d3 00 00 20       	push   $0x200000d3
4157c2:	eb 3b                	jmp    0x4157ff
4157c4:	8b 75 0c             	mov    0xc(%ebp),%esi
4157c7:	85 f6                	test   %esi,%esi
4157c9:	74 43                	je     0x41580e
4157cb:	ff 76 6c             	push   0x6c(%esi)
4157ce:	e8 34 e5 ff ff       	call   0x413d07
4157d3:	50                   	push   %eax
4157d4:	ff 76 60             	push   0x60(%esi)
4157d7:	e8 d4 e3 ff ff       	call   0x413bb0
4157dc:	50                   	push   %eax
4157dd:	ff 76 5c             	push   0x5c(%esi)
4157e0:	e8 cb e3 ff ff       	call   0x413bb0
4157e5:	50                   	push   %eax
4157e6:	ff 76 50             	push   0x50(%esi)
4157e9:	e8 df e9 ff ff       	call   0x4141cd
4157ee:	50                   	push   %eax
4157ef:	ff 76 4c             	push   0x4c(%esi)
4157f2:	e8 d6 e9 ff ff       	call   0x4141cd
4157f7:	50                   	push   %eax
4157f8:	ff 36                	push   (%esi)
4157fa:	68 d4 00 00 20       	push   $0x200000d4
4157ff:	6a 02                	push   $0x2
415801:	e8 09 fd fe ff       	call   0x40550f
415806:	83 c4 20             	add    $0x20,%esp
415809:	e9 22 02 00 00       	jmp    0x415a30
41580e:	53                   	push   %ebx
41580f:	8b 5d 18             	mov    0x18(%ebp),%ebx
415812:	57                   	push   %edi
415813:	83 fb 03             	cmp    $0x3,%ebx
415816:	75 7c                	jne    0x415894
415818:	8b 45 14             	mov    0x14(%ebp),%eax
41581b:	8b 78 04             	mov    0x4(%eax),%edi
41581e:	85 ff                	test   %edi,%edi
415820:	74 72                	je     0x415894
415822:	83 ef 01             	sub    $0x1,%edi
415825:	78 6d                	js     0x415894
415827:	8b 5d 14             	mov    0x14(%ebp),%ebx
41582a:	69 c7 f8 00 00 00    	imul   $0xf8,%edi,%eax
415830:	89 45 08             	mov    %eax,0x8(%ebp)
415833:	8b 33                	mov    (%ebx),%esi
415835:	03 f0                	add    %eax,%esi
415837:	ff b6 84 00 00 00    	push   0x84(%esi)
41583d:	e8 c5 e4 ff ff       	call   0x413d07
415842:	50                   	push   %eax
415843:	ff 76 78             	push   0x78(%esi)
415846:	e8 65 e3 ff ff       	call   0x413bb0
41584b:	50                   	push   %eax
41584c:	ff 76 74             	push   0x74(%esi)
41584f:	e8 5c e3 ff ff       	call   0x413bb0
415854:	50                   	push   %eax
415855:	ff 76 68             	push   0x68(%esi)
415858:	e8 70 e9 ff ff       	call   0x4141cd
41585d:	50                   	push   %eax
41585e:	ff 76 64             	push   0x64(%esi)
415861:	e8 67 e9 ff ff       	call   0x4141cd
415866:	50                   	push   %eax
415867:	ff 36                	push   (%esi)
415869:	e8 fc e8 ff ff       	call   0x41416a
41586e:	50                   	push   %eax
41586f:	ff 76 18             	push   0x18(%esi)
415872:	68 cf 00 00 20       	push   $0x200000cf
415877:	6a 02                	push   $0x2
415879:	e8 91 fc fe ff       	call   0x40550f
41587e:	8b 45 08             	mov    0x8(%ebp),%eax
415881:	83 c4 24             	add    $0x24,%esp
415884:	2d f8 00 00 00       	sub    $0xf8,%eax
415889:	83 ef 01             	sub    $0x1,%edi
41588c:	89 45 08             	mov    %eax,0x8(%ebp)
41588f:	79 a2                	jns    0x415833
415891:	8b 5d 18             	mov    0x18(%ebp),%ebx
415894:	8b 55 10             	mov    0x10(%ebp),%edx
415897:	33 ff                	xor    %edi,%edi
415899:	8b cf                	mov    %edi,%ecx
41589b:	89 7d 18             	mov    %edi,0x18(%ebp)
41589e:	8b 42 0c             	mov    0xc(%edx),%eax
4158a1:	85 c0                	test   %eax,%eax
4158a3:	0f 84 83 00 00 00    	je     0x41592c
4158a9:	8b fa                	mov    %edx,%edi
4158ab:	83 fb 03             	cmp    $0x3,%ebx
4158ae:	75 05                	jne    0x4158b5
4158b0:	2b c1                	sub    %ecx,%eax
4158b2:	48                   	dec    %eax
4158b3:	eb 02                	jmp    0x4158b7
4158b5:	8b c1                	mov    %ecx,%eax
4158b7:	69 f0 e0 00 00 00    	imul   $0xe0,%eax,%esi
4158bd:	03 77 08             	add    0x8(%edi),%esi
4158c0:	ff 76 6c             	push   0x6c(%esi)
4158c3:	e8 3f e4 ff ff       	call   0x413d07
4158c8:	50                   	push   %eax
4158c9:	ff 76 58             	push   0x58(%esi)
4158cc:	e8 5f e3 ff ff       	call   0x413c30
4158d1:	50                   	push   %eax
4158d2:	ff 76 54             	push   0x54(%esi)
4158d5:	e8 56 e3 ff ff       	call   0x413c30
4158da:	50                   	push   %eax
4158db:	ff 76 60             	push   0x60(%esi)