40b5a2:	8b 47 10             	mov    0x10(%edi),%eax
40b5a5:	8b ce                	mov    %esi,%ecx
40b5a7:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b5aa:	8b 87 f0 01 00 00    	mov    0x1f0(%edi),%eax
40b5b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b5b3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b5b6:	50                   	push   %eax
40b5b7:	68 24 b4 40 00       	push   $0x40b424
40b5bc:	e8 ae 68 ff ff       	call   0x401e6f
40b5c1:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b5c4:	50                   	push   %eax
40b5c5:	68 91 b4 40 00       	push   $0x40b491
40b5ca:	8d 8f cc 03 00 00    	lea    0x3cc(%edi),%ecx
40b5d0:	e8 9a 68 ff ff       	call   0x401e6f
40b5d5:	8b 35 40 21 41 00    	mov    0x412140,%esi
40b5db:	53                   	push   %ebx
40b5dc:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
40b5e2:	ff d6                	call   *%esi
40b5e4:	6a ff                	push   $0xffffffff
40b5e6:	8d 8f c4 03 00 00    	lea    0x3c4(%edi),%ecx
40b5ec:	e8 c3 6a ff ff       	call   0x4020b4
40b5f1:	6a ff                	push   $0xffffffff
40b5f3:	8d 8f cc 03 00 00    	lea    0x3cc(%edi),%ecx
40b5f9:	e8 b6 6a ff ff       	call   0x4020b4
40b5fe:	53                   	push   %ebx
40b5ff:	ff 15 3c 21 41 00    	call   *0x41213c
40b605:	83 27 00             	andl   $0x0,(%edi)
40b608:	53                   	push   %ebx
40b609:	ff d6                	call   *%esi
40b60b:	8b cf                	mov    %edi,%ecx
40b60d:	e8 97 00 00 00       	call   0x40b6a9
40b612:	33 c0                	xor    %eax,%eax
40b614:	5f                   	pop    %edi
40b615:	5e                   	pop    %esi
40b616:	5b                   	pop    %ebx
40b617:	c9                   	leave
40b618:	c2 04 00             	ret    $0x4
40b61b:	55                   	push   %ebp
40b61c:	8b ec                	mov    %esp,%ebp
40b61e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b621:	51                   	push   %ecx
40b622:	8b 49 10             	mov    0x10(%ecx),%ecx
40b625:	e8 d4 fe ff ff       	call   0x40b4fe
40b62a:	5d                   	pop    %ebp
40b62b:	c2 04 00             	ret    $0x4
40b62e:	55                   	push   %ebp
40b62f:	8b ec                	mov    %esp,%ebp
40b631:	51                   	push   %ecx
40b632:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40b636:	53                   	push   %ebx
40b637:	56                   	push   %esi
40b638:	8b da                	mov    %edx,%ebx
40b63a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b63d:	74 25                	je     0x40b664
40b63f:	8b 75 08             	mov    0x8(%ebp),%esi
40b642:	6a 00                	push   $0x0
40b644:	8b c3                	mov    %ebx,%eax
40b646:	2b c6                	sub    %esi,%eax
40b648:	03 45 08             	add    0x8(%ebp),%eax
40b64b:	56                   	push   %esi
40b64c:	50                   	push   %eax
40b64d:	51                   	push   %ecx
40b64e:	ff 15 dc 22 41 00    	call   *0x4122dc
40b654:	83 f8 ff             	cmp    $0xffffffff,%eax
40b657:	74 0b                	je     0x40b664
40b659:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b65c:	2b f0                	sub    %eax,%esi
40b65e:	75 e2                	jne    0x40b642
40b660:	b0 01                	mov    $0x1,%al
40b662:	eb 02                	jmp    0x40b666
40b664:	32 c0                	xor    %al,%al
40b666:	5e                   	pop    %esi
40b667:	5b                   	pop    %ebx
40b668:	c9                   	leave
40b669:	c3                   	ret
40b66a:	68 f8 7b 41 00       	push   $0x417bf8
40b66f:	ff 15 48 21 41 00    	call   *0x412148
40b675:	a1 ec 7b 41 00       	mov    0x417bec,%eax
40b67a:	85 c0                	test   %eax,%eax
40b67c:	74 07                	je     0x40b685
40b67e:	50                   	push   %eax
40b67f:	ff 15 00 22 41 00    	call   *0x412200
40b685:	a1 e4 7b 41 00       	mov    0x417be4,%eax
40b68a:	85 c0                	test   %eax,%eax
40b68c:	74 07                	je     0x40b695
40b68e:	50                   	push   %eax
40b68f:	ff 15 00 22 41 00    	call   *0x412200
40b695:	b9 04 7a 41 00       	mov    $0x417a04,%ecx
40b69a:	e8 6e 9a ff ff       	call   0x40510d
40b69f:	b9 24 78 41 00       	mov    $0x417824,%ecx
40b6a4:	e9 64 9a ff ff       	jmp    0x40510d
40b6a9:	56                   	push   %esi
40b6aa:	8b f1                	mov    %ecx,%esi
40b6ac:	57                   	push   %edi
40b6ad:	8d be d8 03 00 00    	lea    0x3d8(%esi),%edi
40b6b3:	57                   	push   %edi
40b6b4:	ff 15 3c 21 41 00    	call   *0x41213c
40b6ba:	8d 8e c4 03 00 00    	lea    0x3c4(%esi),%ecx
40b6c0:	e8 d5 67 ff ff       	call   0x401e9a
40b6c5:	8d 8e cc 03 00 00    	lea    0x3cc(%esi),%ecx
40b6cb:	e8 ca 67 ff ff       	call   0x401e9a
40b6d0:	8d 4e 04             	lea    0x4(%esi),%ecx
40b6d3:	e8 61 9a ff ff       	call   0x405139
40b6d8:	8d 8e e4 01 00 00    	lea    0x1e4(%esi),%ecx
40b6de:	e8 56 9a ff ff       	call   0x405139
40b6e3:	57                   	push   %edi
40b6e4:	ff 15 40 21 41 00    	call   *0x412140
40b6ea:	5f                   	pop    %edi
40b6eb:	5e                   	pop    %esi
40b6ec:	c3                   	ret
40b6ed:	55                   	push   %ebp
40b6ee:	8b ec                	mov    %esp,%ebp
40b6f0:	51                   	push   %ecx
40b6f1:	51                   	push   %ecx
40b6f2:	8b 45 08             	mov    0x8(%ebp),%eax
40b6f5:	56                   	push   %esi
40b6f6:	6a 14                	push   $0x14
40b6f8:	59                   	pop    %ecx
40b6f9:	a3 f4 7b 41 00       	mov    %eax,0x417bf4
40b6fe:	e8 84 a3 ff ff       	call   0x405a87
40b703:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40b707:	8b f0                	mov    %eax,%esi
40b709:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b70d:	8d 45 14             	lea    0x14(%ebp),%eax
40b710:	50                   	push   %eax
40b711:	8b ce                	mov    %esi,%ecx
40b713:	e8 3a 78 ff ff       	call   0x402f52
40b718:	8d 45 0c             	lea    0xc(%ebp),%eax
40b71b:	c7 46 04 3d 0d 00 00 	movl   $0xd3d,0x4(%esi)
40b722:	50                   	push   %eax
40b723:	8d 4e 08             	lea    0x8(%esi),%ecx
40b726:	e8 27 78 ff ff       	call   0x402f52
40b72b:	8b 45 10             	mov    0x10(%ebp),%eax
40b72e:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40b731:	56                   	push   %esi
40b732:	68 1b b6 40 00       	push   $0x40b61b
40b737:	89 46 0c             	mov    %eax,0xc(%esi)
40b73a:	c7 46 10 20 78 41 00 	movl   $0x417820,0x10(%esi)
40b741:	e8 29 67 ff ff       	call   0x401e6f
40b746:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40b74a:	5e                   	pop    %esi
40b74b:	74 09                	je     0x40b756
40b74d:	ff 75 f8             	push   -0x8(%ebp)
40b750:	ff 15 00 22 41 00    	call   *0x412200
40b756:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b759:	e8 cf a2 ff ff       	call   0x405a2d
40b75e:	8b 4d 14             	mov    0x14(%ebp),%ecx
40b761:	e8 c7 a2 ff ff       	call   0x405a2d
40b766:	c9                   	leave
40b767:	c2 14 00             	ret    $0x14
40b76a:	b9 24 78 41 00       	mov    $0x417824,%ecx
40b76f:	e8 f3 9c ff ff       	call   0x405467
40b774:	b9 04 7a 41 00       	mov    $0x417a04,%ecx
40b779:	e8 e9 9c ff ff       	call   0x405467
40b77e:	0f 57 c0             	xorps  %xmm0,%xmm0
40b781:	68 f8 7b 41 00       	push   $0x417bf8
40b786:	0f 11 05 e4 7b 41 00 	movups %xmm0,0x417be4
40b78d:	ff 15 44 21 41 00    	call   *0x412144
40b793:	b8 20 78 41 00       	mov    $0x417820,%eax
40b798:	c3                   	ret
40b799:	55                   	push   %ebp
40b79a:	8b ec                	mov    %esp,%ebp
40b79c:	83 ec 24             	sub    $0x24,%esp
40b79f:	53                   	push   %ebx
40b7a0:	56                   	push   %esi
40b7a1:	8b 75 08             	mov    0x8(%ebp),%esi
40b7a4:	33 c0                	xor    %eax,%eax
40b7a6:	57                   	push   %edi
40b7a7:	6a 08                	push   $0x8
40b7a9:	59                   	pop    %ecx
40b7aa:	8d 7d e0             	lea    -0x20(%ebp),%edi
40b7ad:	33 db                	xor    %ebx,%ebx
40b7af:	f3 ab                	rep stos %eax,%es:(%edi)
40b7b1:	8b 06                	mov    (%esi),%eax
40b7b3:	33 ff                	xor    %edi,%edi
40b7b5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40b7b8:	43                   	inc    %ebx
40b7b9:	8b 45 0c             	mov    0xc(%ebp),%eax
40b7bc:	57                   	push   %edi
40b7bd:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40b7c0:	89 7d f0             	mov    %edi,-0x10(%ebp)
40b7c3:	8b 00                	mov    (%eax),%eax
40b7c5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b7c8:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b7cb:	50                   	push   %eax
40b7cc:	53                   	push   %ebx
40b7cd:	57                   	push   %edi
40b7ce:	89 7d f4             	mov    %edi,-0xc(%ebp)
40b7d1:	c7 45 f8 01 02 01 00 	movl   $0x10201,-0x8(%ebp)
40b7d8:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b7db:	ff 15 28 22 41 00    	call   *0x412228
40b7e1:	85 c0                	test   %eax,%eax
40b7e3:	75 2f                	jne    0x40b814
40b7e5:	8b 06                	mov    (%esi),%eax
40b7e7:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40b7ea:	89 45 08             	mov    %eax,0x8(%ebp)
40b7ed:	e8 16 1d 00 00       	call   0x40d508
40b7f2:	53                   	push   %ebx
40b7f3:	8d 4d 08             	lea    0x8(%ebp),%ecx
40b7f6:	51                   	push   %ecx
40b7f7:	6a 03                	push   $0x3
40b7f9:	ff 30                	push   (%eax)
40b7fb:	57                   	push   %edi
40b7fc:	ff 15 2c 22 41 00    	call   *0x41222c
40b802:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b805:	8b f0                	mov    %eax,%esi
40b807:	e8 21 a2 ff ff       	call   0x405a2d
40b80c:	85 f6                	test   %esi,%esi
40b80e:	75 04                	jne    0x40b814
40b810:	8b c3                	mov    %ebx,%eax
40b812:	eb 02                	jmp    0x40b816
40b814:	33 c0                	xor    %eax,%eax
40b816:	5f                   	pop    %edi
40b817:	5e                   	pop    %esi
40b818:	5b                   	pop    %ebx
40b819:	c9                   	leave
40b81a:	c2 08 00             	ret    $0x8
40b81d:	55                   	push   %ebp
40b81e:	8b ec                	mov    %esp,%ebp
40b820:	56                   	push   %esi
40b821:	57                   	push   %edi
40b822:	6a 01                	push   $0x1
40b824:	68 00 38 41 00       	push   $0x413800
40b829:	33 ff                	xor    %edi,%edi
40b82b:	57                   	push   %edi
40b82c:	ff 15 40 20 41 00    	call   *0x412040
40b832:	8b f0                	mov    %eax,%esi
40b834:	85 f6                	test   %esi,%esi
40b836:	74 4b                	je     0x40b883
40b838:	8b 45 08             	mov    0x8(%ebp),%eax
40b83b:	53                   	push   %ebx
40b83c:	6a 02                	push   $0x2
40b83e:	ff 30                	push   (%eax)
40b840:	56                   	push   %esi
40b841:	ff 15 24 20 41 00    	call   *0x412024
40b847:	8b d8                	mov    %eax,%ebx
40b849:	85 db                	test   %ebx,%ebx
40b84b:	75 0b                	jne    0x40b858
40b84d:	56                   	push   %esi
40b84e:	ff 15 44 20 41 00    	call   *0x412044
40b854:	33 c0                	xor    %eax,%eax
40b856:	eb 2a                	jmp    0x40b882
40b858:	57                   	push   %edi
40b859:	57                   	push   %edi
40b85a:	57                   	push   %edi
40b85b:	57                   	push   %edi
40b85c:	57                   	push   %edi
40b85d:	57                   	push   %edi
40b85e:	57                   	push   %edi
40b85f:	6a ff                	push   $0xffffffff
40b861:	ff 75 0c             	push   0xc(%ebp)
40b864:	6a ff                	push   $0xffffffff
40b866:	53                   	push   %ebx
40b867:	ff 15 28 20 41 00    	call   *0x412028
40b86d:	85 c0                	test   %eax,%eax
40b86f:	74 03                	je     0x40b874
40b871:	33 ff                	xor    %edi,%edi
40b873:	47                   	inc    %edi
40b874:	56                   	push   %esi
40b875:	8b 35 44 20 41 00    	mov    0x412044,%esi
40b87b:	ff d6                	call   *%esi
40b87d:	53                   	push   %ebx
40b87e:	ff d6                	call   *%esi
40b880:	8b c7                	mov    %edi,%eax
40b882:	5b                   	pop    %ebx
40b883:	5f                   	pop    %edi
40b884:	5e                   	pop    %esi
40b885:	5d                   	pop    %ebp
40b886:	c2 08 00             	ret    $0x8
40b889:	55                   	push   %ebp
40b88a:	8b ec                	mov    %esp,%ebp
40b88c:	56                   	push   %esi
40b88d:	57                   	push   %edi
40b88e:	6a 01                	push   $0x1
40b890:	68 00 38 41 00       	push   $0x413800
40b895:	33 ff                	xor    %edi,%edi
40b897:	57                   	push   %edi
40b898:	ff 15 40 20 41 00    	call   *0x412040
40b89e:	8b f0                	mov    %eax,%esi
40b8a0:	85 f6                	test   %esi,%esi
40b8a2:	74 64                	je     0x40b908
40b8a4:	8b 45 08             	mov    0x8(%ebp),%eax
40b8a7:	53                   	push   %ebx
40b8a8:	6a 10                	push   $0x10
40b8aa:	ff 30                	push   (%eax)
40b8ac:	56                   	push   %esi
40b8ad:	ff 15 24 20 41 00    	call   *0x412024
40b8b3:	8b d8                	mov    %eax,%ebx
40b8b5:	85 db                	test   %ebx,%ebx
40b8b7:	75 0b                	jne    0x40b8c4
40b8b9:	56                   	push   %esi
40b8ba:	ff 15 44 20 41 00    	call   *0x412044
40b8c0:	33 c0                	xor    %eax,%eax
40b8c2:	eb 43                	jmp    0x40b907
40b8c4:	57                   	push   %edi
40b8c5:	57                   	push   %edi
40b8c6:	53                   	push   %ebx
40b8c7:	ff 15 34 20 41 00    	call   *0x412034
40b8cd:	85 c0                	test   %eax,%eax
40b8cf:	75 25                	jne    0x40b8f6
40b8d1:	ff 15 0c 22 41 00    	call   *0x41220c
40b8d7:	3d 20 04 00 00       	cmp    $0x420,%eax
40b8dc:	75 1b                	jne    0x40b8f9
40b8de:	68 d0 07 00 00       	push   $0x7d0
40b8e3:	ff 15 e4 21 41 00    	call   *0x4121e4
40b8e9:	57                   	push   %edi
40b8ea:	57                   	push   %edi
40b8eb:	53                   	push   %ebx
40b8ec:	ff 15 34 20 41 00    	call   *0x412034
40b8f2:	85 c0                	test   %eax,%eax
40b8f4:	74 03                	je     0x40b8f9
40b8f6:	33 ff                	xor    %edi,%edi
40b8f8:	47                   	inc    %edi
40b8f9:	56                   	push   %esi
40b8fa:	8b 35 44 20 41 00    	mov    0x412044,%esi
40b900:	ff d6                	call   *%esi
40b902:	53                   	push   %ebx
40b903:	ff d6                	call   *%esi
40b905:	8b c7                	mov    %edi,%eax
40b907:	5b                   	pop    %ebx
40b908:	5f                   	pop    %edi
40b909:	5e                   	pop    %esi
40b90a:	5d                   	pop    %ebp
40b90b:	c2 04 00             	ret    $0x4
40b90e:	55                   	push   %ebp
40b90f:	8b ec                	mov    %esp,%ebp
40b911:	51                   	push   %ecx
40b912:	56                   	push   %esi
40b913:	57                   	push   %edi
40b914:	6a 01                	push   $0x1
40b916:	33 ff                	xor    %edi,%edi
40b918:	68 00 38 41 00       	push   $0x413800
40b91d:	57                   	push   %edi
40b91e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b921:	ff 15 40 20 41 00    	call   *0x412040
40b927:	8b f0                	mov    %eax,%esi
40b929:	85 f6                	test   %esi,%esi
40b92b:	0f 84 85 00 00 00    	je     0x40b9b6
40b931:	8b 45 08             	mov    0x8(%ebp),%eax
40b934:	53                   	push   %ebx
40b935:	6a 01                	push   $0x1
40b937:	ff 30                	push   (%eax)
40b939:	56                   	push   %esi
40b93a:	ff 15 24 20 41 00    	call   *0x412024
40b940:	8b d8                	mov    %eax,%ebx
40b942:	85 db                	test   %ebx,%ebx
40b944:	75 09                	jne    0x40b94f
40b946:	56                   	push   %esi
40b947:	ff 15 44 20 41 00    	call   *0x412044
40b94d:	eb 48                	jmp    0x40b997