4046f0:	8b ff                	mov    %edi,%edi
4046f2:	55                   	push   %ebp
4046f3:	8b ec                	mov    %esp,%ebp
4046f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4046f8:	ba 10 47 40 00       	mov    $0x404710,%edx
4046fd:	6a 0d                	push   $0xd
4046ff:	8b 49 3c             	mov    0x3c(%ecx),%ecx
404702:	e8 9c 17 00 00       	call   0x405ea3
404707:	a3 dc 65 43 00       	mov    %eax,0x4365dc
40470c:	5d                   	pop    %ebp
40470d:	c2 04 00             	ret    $0x4
404710:	8b ff                	mov    %edi,%edi
404712:	55                   	push   %ebp
404713:	8b ec                	mov    %esp,%ebp
404715:	83 e4 f8             	and    $0xfffffff8,%esp
404718:	b8 74 10 00 00       	mov    $0x1074,%eax
40471d:	e8 5e 38 01 00       	call   0x417f80
404722:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
404727:	33 c4                	xor    %esp,%eax
404729:	89 84 24 70 10 00 00 	mov    %eax,0x1070(%esp)
404730:	83 4c 24 3c ff       	orl    $0xffffffff,0x3c(%esp)
404735:	33 c0                	xor    %eax,%eax
404737:	53                   	push   %ebx
404738:	56                   	push   %esi
404739:	57                   	push   %edi
40473a:	8b 7d 08             	mov    0x8(%ebp),%edi
40473d:	be 04 01 00 00       	mov    $0x104,%esi
404742:	56                   	push   %esi
404743:	50                   	push   %eax
404744:	89 44 24 4c          	mov    %eax,0x4c(%esp)
404748:	33 db                	xor    %ebx,%ebx
40474a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40474e:	43                   	inc    %ebx
40474f:	89 44 24 38          	mov    %eax,0x38(%esp)
404753:	89 44 24 3c          	mov    %eax,0x3c(%esp)
404757:	89 84 24 68 02 00 00 	mov    %eax,0x268(%esp)
40475e:	8d 44 24 60          	lea    0x60(%esp),%eax
404762:	50                   	push   %eax
404763:	89 7c 24 60          	mov    %edi,0x60(%esp)
404767:	c7 44 24 58 ff ff ff 	movl   $0x7fffffff,0x58(%esp)
40476e:	7f
40476f:	89 5c 24 48          	mov    %ebx,0x48(%esp)
404773:	88 9c 24 70 02 00 00 	mov    %bl,0x270(%esp)
40477a:	89 b4 24 74 02 00 00 	mov    %esi,0x274(%esp)
404781:	e8 37 38 01 00       	call   0x417fbd
404786:	33 c0                	xor    %eax,%eax
404788:	8d 4c 24 64          	lea    0x64(%esp),%ecx
40478c:	83 c4 0c             	add    $0xc,%esp
40478f:	38 84 24 64 02 00 00 	cmp    %al,0x264(%esp)
404796:	0f 94 c0             	sete   %al
404799:	48                   	dec    %eax
40479a:	25 e3 7e 00 00       	and    $0x7ee3,%eax
40479f:	03 c6                	add    %esi,%eax
4047a1:	50                   	push   %eax
4047a2:	e8 49 9c 00 00       	call   0x40e3f0
4047a7:	85 c0                	test   %eax,%eax
4047a9:	0f 88 2e 39 01 00    	js     0x4180dd
4047af:	51                   	push   %ecx
4047b0:	33 d2                	xor    %edx,%edx
4047b2:	8b cf                	mov    %edi,%ecx
4047b4:	e8 d7 bd 00 00       	call   0x410590
4047b9:	8b f0                	mov    %eax,%esi
4047bb:	89 74 24 20          	mov    %esi,0x20(%esp)
4047bf:	83 fe ff             	cmp    $0xffffffff,%esi
4047c2:	0f 84 2d 39 01 00    	je     0x4180f5
4047c8:	8d 84 24 70 02 00 00 	lea    0x270(%esp),%eax
4047cf:	8b ce                	mov    %esi,%ecx
4047d1:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4047d5:	e8 be 95 00 00       	call   0x40dd98
4047da:	85 c0                	test   %eax,%eax
4047dc:	75 36                	jne    0x404814
4047de:	8d 44 24 4c          	lea    0x4c(%esp),%eax
4047e2:	50                   	push   %eax
4047e3:	56                   	push   %esi
4047e4:	ff 15 2c a4 44 00    	call   *0x44a42c
4047ea:	59                   	pop    %ecx
4047eb:	50                   	push   %eax
4047ec:	ff 15 9c a0 44 00    	call   *0x44a09c
4047f2:	6a 00                	push   $0x0
4047f4:	6a 00                	push   $0x0
4047f6:	6a 00                	push   $0x0
4047f8:	56                   	push   %esi
4047f9:	89 44 24 58          	mov    %eax,0x58(%esp)
4047fd:	ff 15 2c a4 44 00    	call   *0x44a42c
404803:	59                   	pop    %ecx
404804:	50                   	push   %eax
404805:	ff 15 a0 a0 44 00    	call   *0x44a0a0
40480b:	83 64 24 34 00       	andl   $0x0,0x34(%esp)
404810:	89 5c 24 30          	mov    %ebx,0x30(%esp)
404814:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
40481b:	75 74                	jne    0x404891
40481d:	6a 00                	push   $0x0
40481f:	8d 44 24 18          	lea    0x18(%esp),%eax
404823:	50                   	push   %eax
404824:	68 00 02 00 00       	push   $0x200
404829:	8d 84 24 7c 02 00 00 	lea    0x27c(%esp),%eax
404830:	50                   	push   %eax
404831:	56                   	push   %esi
404832:	ff 15 2c a4 44 00    	call   *0x44a42c
404838:	59                   	pop    %ecx
404839:	50                   	push   %eax
40483a:	ff 15 94 a0 44 00    	call   *0x44a094
404840:	85 c0                	test   %eax,%eax
404842:	0f 84 56 3c 01 00    	je     0x41849e
404848:	8b 7c 24 14          	mov    0x14(%esp),%edi
40484c:	85 ff                	test   %edi,%edi
40484e:	0f 85 09 39 01 00    	jne    0x41815d
404854:	8b ce                	mov    %esi,%ecx
404856:	e8 11 59 00 00       	call   0x40a16c
40485b:	33 db                	xor    %ebx,%ebx
40485d:	8b 84 24 60 02 00 00 	mov    0x260(%esp),%eax
404864:	83 a4 24 60 02 00 00 	andl   $0x0,0x260(%esp)
40486b:	00
40486c:	85 c0                	test   %eax,%eax
40486e:	74 08                	je     0x404878
404870:	50                   	push   %eax
404871:	ff 15 e0 a3 44 00    	call   *0x44a3e0
404877:	59                   	pop    %ecx
404878:	8b 8c 24 7c 10 00 00 	mov    0x107c(%esp),%ecx
40487f:	8b c3                	mov    %ebx,%eax
404881:	5f                   	pop    %edi
404882:	5e                   	pop    %esi
404883:	5b                   	pop    %ebx
404884:	33 cc                	xor    %esp,%ecx
404886:	e8 a5 22 01 00       	call   0x416b30
40488b:	8b e5                	mov    %ebp,%esp
40488d:	5d                   	pop    %ebp
40488e:	c2 04 00             	ret    $0x4
404891:	8b ce                	mov    %esi,%ecx
404893:	e9 4a 3c 01 00       	jmp    0x4184e2
404898:	8b ff                	mov    %edi,%edi
40489a:	55                   	push   %ebp
40489b:	8b ec                	mov    %esp,%ebp
40489d:	81 ec 24 02 00 00    	sub    $0x224,%esp
4048a3:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
4048a8:	33 c5                	xor    %ebp,%eax
4048aa:	89 45 fc             	mov    %eax,-0x4(%ebp)
4048ad:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4048b1:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
4048b7:	53                   	push   %ebx
4048b8:	56                   	push   %esi
4048b9:	57                   	push   %edi
4048ba:	bf 04 01 00 00       	mov    $0x104,%edi
4048bf:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
4048c5:	57                   	push   %edi
4048c6:	33 db                	xor    %ebx,%ebx
4048c8:	89 7d f0             	mov    %edi,-0x10(%ebp)
4048cb:	6a 00                	push   $0x0
4048cd:	43                   	inc    %ebx
4048ce:	8b f1                	mov    %ecx,%esi
4048d0:	50                   	push   %eax
4048d1:	88 5d ec             	mov    %bl,-0x14(%ebp)
4048d4:	e8 e4 36 01 00       	call   0x417fbd
4048d9:	33 c0                	xor    %eax,%eax
4048db:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4048e1:	83 c4 0c             	add    $0xc,%esp
4048e4:	38 45 ec             	cmp    %al,-0x14(%ebp)
4048e7:	0f 94 c0             	sete   %al
4048ea:	48                   	dec    %eax
4048eb:	25 e3 7e 00 00       	and    $0x7ee3,%eax
4048f0:	03 c7                	add    %edi,%eax
4048f2:	50                   	push   %eax
4048f3:	e8 f8 9a 00 00       	call   0x40e3f0
4048f8:	85 c0                	test   %eax,%eax
4048fa:	78 47                	js     0x404943
4048fc:	ff 75 08             	push   0x8(%ebp)
4048ff:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
404905:	e8 37 5d 00 00       	call   0x40a641
40490a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40490d:	85 c9                	test   %ecx,%ecx
40490f:	74 58                	je     0x404969
404911:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
404917:	e8 5d 00 00 00       	call   0x404979
40491c:	f6 85 dc fd ff ff 80 	testb  $0x80,-0x224(%ebp)
404923:	0f 85 cc 3b 01 00    	jne    0x4184f5
404929:	8b 45 e8             	mov    -0x18(%ebp),%eax
40492c:	85 c0                	test   %eax,%eax
40492e:	74 41                	je     0x404971
404930:	50                   	push   %eax
404931:	ba 00 1f 40 00       	mov    $0x401f00,%edx
404936:	8b ce                	mov    %esi,%ecx
404938:	e8 c7 1c 01 00       	call   0x416604
40493d:	85 c0                	test   %eax,%eax
40493f:	75 02                	jne    0x404943
404941:	33 db                	xor    %ebx,%ebx
404943:	8b 4d e8             	mov    -0x18(%ebp),%ecx
404946:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40494a:	85 c9                	test   %ecx,%ecx
40494c:	74 08                	je     0x404956
40494e:	51                   	push   %ecx
40494f:	ff 15 e0 a3 44 00    	call   *0x44a3e0
404955:	59                   	pop    %ecx
404956:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404959:	8b c3                	mov    %ebx,%eax
40495b:	5f                   	pop    %edi
40495c:	5e                   	pop    %esi
40495d:	33 cd                	xor    %ebp,%ecx
40495f:	5b                   	pop    %ebx
404960:	e8 cb 21 01 00       	call   0x416b30
404965:	c9                   	leave
404966:	c2 08 00             	ret    $0x8
404969:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
40496f:	eb a0                	jmp    0x404911
404971:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
404977:	eb b7                	jmp    0x404930
404979:	8b ff                	mov    %edi,%edi
40497b:	55                   	push   %ebp
40497c:	8b ec                	mov    %esp,%ebp
40497e:	f7 45 08 00 01 00 00 	testl  $0x100,0x8(%ebp)
404985:	0f 85 84 3b 01 00    	jne    0x41850f
40498b:	5d                   	pop    %ebp
40498c:	c2 04 00             	ret    $0x4
40498f:	8b ff                	mov    %edi,%edi
404991:	55                   	push   %ebp
404992:	8b ec                	mov    %esp,%ebp
404994:	83 ec 14             	sub    $0x14,%esp
404997:	53                   	push   %ebx
404998:	8b d9                	mov    %ecx,%ebx
40499a:	56                   	push   %esi
40499b:	57                   	push   %edi
40499c:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
4049a0:	0f 85 91 3b 01 00    	jne    0x418537
4049a6:	8b 53 10             	mov    0x10(%ebx),%edx
4049a9:	8b cb                	mov    %ebx,%ecx
4049ab:	e8 15 00 00 00       	call   0x4049c5
4049b0:	01 43 04             	add    %eax,0x4(%ebx)
4049b3:	33 c9                	xor    %ecx,%ecx
4049b5:	8b 43 10             	mov    0x10(%ebx),%eax
4049b8:	5f                   	pop    %edi
4049b9:	5e                   	pop    %esi
4049ba:	66 89 08             	mov    %cx,(%eax)
4049bd:	21 4b 08             	and    %ecx,0x8(%ebx)
4049c0:	33 c0                	xor    %eax,%eax
4049c2:	5b                   	pop    %ebx
4049c3:	c9                   	leave
4049c4:	c3                   	ret
4049c5:	8b ff                	mov    %edi,%edi
4049c7:	53                   	push   %ebx
4049c8:	56                   	push   %esi
4049c9:	57                   	push   %edi
4049ca:	8b fa                	mov    %edx,%edi
4049cc:	8b d9                	mov    %ecx,%ebx
4049ce:	33 f6                	xor    %esi,%esi
4049d0:	6a 0a                	push   $0xa
4049d2:	5a                   	pop    %edx
4049d3:	8b cf                	mov    %edi,%ecx
4049d5:	e8 55 5c 00 00       	call   0x40a62f
4049da:	8b c8                	mov    %eax,%ecx
4049dc:	85 c9                	test   %ecx,%ecx
4049de:	0f 85 a2 3c 01 00    	jne    0x418686
4049e4:	85 f6                	test   %esi,%esi
4049e6:	75 0a                	jne    0x4049f2
4049e8:	8b 43 08             	mov    0x8(%ebx),%eax
4049eb:	33 d2                	xor    %edx,%edx
4049ed:	f7 73 20             	divl   0x20(%ebx)
4049f0:	8b f0                	mov    %eax,%esi
4049f2:	5f                   	pop    %edi
4049f3:	8b c6                	mov    %esi,%eax
4049f5:	5e                   	pop    %esi
4049f6:	5b                   	pop    %ebx
4049f7:	c3                   	ret
4049f8:	8b ff                	mov    %edi,%edi
4049fa:	55                   	push   %ebp
4049fb:	8b ec                	mov    %esp,%ebp
4049fd:	83 ec 0c             	sub    $0xc,%esp
404a00:	53                   	push   %ebx
404a01:	56                   	push   %esi
404a02:	57                   	push   %edi
404a03:	8b f9                	mov    %ecx,%edi
404a05:	e8 95 00 00 00       	call   0x404a9f
404a0a:	33 c9                	xor    %ecx,%ecx
404a0c:	41                   	inc    %ecx
404a0d:	e8 ff 4f 00 00       	call   0x409a11
404a12:	8b 77 10             	mov    0x10(%edi),%esi
404a15:	85 c0                	test   %eax,%eax
404a17:	0f 85 83 3c 01 00    	jne    0x4186a0
404a1d:	8d 45 fc             	lea    -0x4(%ebp),%eax
404a20:	33 c9                	xor    %ecx,%ecx
404a22:	50                   	push   %eax
404a23:	8b 47 08             	mov    0x8(%edi),%eax
404a26:	8b d6                	mov    %esi,%edx
404a28:	03 c0                	add    %eax,%eax
404a2a:	41                   	inc    %ecx
404a2b:	50                   	push   %eax
404a2c:	e8 0a 51 00 00       	call   0x409b3b
404a31:	85 c0                	test   %eax,%eax
404a33:	0f 84 61 3d 01 00    	je     0x41879a
404a39:	8b 47 08             	mov    0x8(%edi),%eax
404a3c:	03 c0                	add    %eax,%eax
404a3e:	39 45 fc             	cmp    %eax,-0x4(%ebp)
404a41:	0f 85 53 3d 01 00    	jne    0x41879a
404a47:	33 c9                	xor    %ecx,%ecx
404a49:	41                   	inc    %ecx
404a4a:	e8 c2 4f 00 00       	call   0x409a11
404a4f:	85 c0                	test   %eax,%eax
404a51:	8d 45 fc             	lea    -0x4(%ebp),%eax
404a54:	0f 85 21 3d 01 00    	jne    0x41877b
404a5a:	50                   	push   %eax
404a5b:	33 c9                	xor    %ecx,%ecx
404a5d:	ba 8c 1f 40 00       	mov    $0x401f8c,%edx
404a62:	6a 04                	push   $0x4
404a64:	41                   	inc    %ecx
404a65:	e8 d1 50 00 00       	call   0x409b3b
404a6a:	8b 57 10             	mov    0x10(%edi),%edx
404a6d:	8b cf                	mov    %edi,%ecx
404a6f:	e8 51 ff ff ff       	call   0x4049c5
404a74:	40                   	inc    %eax
404a75:	8b cf                	mov    %edi,%ecx
404a77:	01 47 04             	add    %eax,0x4(%edi)
404a7a:	e8 20 00 00 00       	call   0x404a9f
404a7f:	8b 47 04             	mov    0x4(%edi),%eax
404a82:	3b 47 1c             	cmp    0x1c(%edi),%eax
404a85:	77 12                	ja     0x404a99
404a87:	8b 47 10             	mov    0x10(%edi),%eax
404a8a:	33 c9                	xor    %ecx,%ecx
404a8c:	66 89 08             	mov    %cx,(%eax)
404a8f:	21 4f 08             	and    %ecx,0x8(%edi)
404a92:	33 c0                	xor    %eax,%eax
404a94:	5f                   	pop    %edi
404a95:	5e                   	pop    %esi
404a96:	5b                   	pop    %ebx
404a97:	c9                   	leave
404a98:	c3                   	ret
404a99:	83 67 04 00          	andl   $0x0,0x4(%edi)
404a9d:	eb e8                	jmp    0x404a87
404a9f:	8b ff                	mov    %edi,%edi
404aa1:	56                   	push   %esi
404aa2:	8b f1                	mov    %ecx,%esi
404aa4:	8b 46 24             	mov    0x24(%esi),%eax
404aa7:	85 c0                	test   %eax,%eax
404aa9:	0f 85 26 3d 01 00    	jne    0x4187d5
404aaf:	5e                   	pop    %esi
404ab0:	c3                   	ret
404ab1:	8b ff                	mov    %edi,%edi
404ab3:	55                   	push   %ebp
404ab4:	8b ec                	mov    %esp,%ebp
404ab6:	81 ec 24 02 00 00    	sub    $0x224,%esp
404abc:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
404ac1:	33 c5                	xor    %ebp,%eax
404ac3:	89 45 fc             	mov    %eax,-0x4(%ebp)
404ac6:	53                   	push   %ebx
404ac7:	56                   	push   %esi
404ac8:	57                   	push   %edi
404ac9:	33 c0                	xor    %eax,%eax
404acb:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
404ad1:	bf 04 01 00 00       	mov    $0x104,%edi
404ad6:	89 45 e8             	mov    %eax,-0x18(%ebp)
404ad9:	57                   	push   %edi
404ada:	50                   	push   %eax
404adb:	33 db                	xor    %ebx,%ebx