4097bc:	56                   	push   %esi
4097bd:	be 90 b2 42 00       	mov    $0x42b290,%esi
4097c2:	57                   	push   %edi
4097c3:	8b 3e                	mov    (%esi),%edi
4097c5:	85 ff                	test   %edi,%edi
4097c7:	74 13                	je     0x4097dc
4097c9:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
4097cd:	74 0d                	je     0x4097dc
4097cf:	57                   	push   %edi
4097d0:	ff d3                	call   *%ebx
4097d2:	57                   	push   %edi
4097d3:	e8 48 b8 ff ff       	call   0x405020
4097d8:	83 26 00             	andl   $0x0,(%esi)
4097db:	59                   	pop    %ecx
4097dc:	83 c6 08             	add    $0x8,%esi
4097df:	81 fe b0 b3 42 00    	cmp    $0x42b3b0,%esi
4097e5:	7c dc                	jl     0x4097c3
4097e7:	be 90 b2 42 00       	mov    $0x42b290,%esi
4097ec:	5f                   	pop    %edi
4097ed:	8b 06                	mov    (%esi),%eax
4097ef:	85 c0                	test   %eax,%eax
4097f1:	74 09                	je     0x4097fc
4097f3:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
4097f7:	75 03                	jne    0x4097fc
4097f9:	50                   	push   %eax
4097fa:	ff d3                	call   *%ebx
4097fc:	83 c6 08             	add    $0x8,%esi
4097ff:	81 fe b0 b3 42 00    	cmp    $0x42b3b0,%esi
409805:	7c e6                	jl     0x4097ed
409807:	5e                   	pop    %esi
409808:	5b                   	pop    %ebx
409809:	c3                   	ret
40980a:	8b ff                	mov    %edi,%edi
40980c:	55                   	push   %ebp
40980d:	8b ec                	mov    %esp,%ebp
40980f:	8b 45 08             	mov    0x8(%ebp),%eax
409812:	ff 34 c5 90 b2 42 00 	push   0x42b290(,%eax,8)
409819:	ff 15 94 a0 41 00    	call   *0x41a094
40981f:	5d                   	pop    %ebp
409820:	c3                   	ret
409821:	6a 0c                	push   $0xc
409823:	68 58 96 42 00       	push   $0x429658
409828:	e8 af 0b 00 00       	call   0x40a3dc
40982d:	33 ff                	xor    %edi,%edi
40982f:	47                   	inc    %edi
409830:	89 7d e4             	mov    %edi,-0x1c(%ebp)
409833:	33 db                	xor    %ebx,%ebx
409835:	39 1d 08 08 43 00    	cmp    %ebx,0x430808
40983b:	75 18                	jne    0x409855
40983d:	e8 0d 33 00 00       	call   0x40cb4f
409842:	6a 1e                	push   $0x1e
409844:	e8 5b 31 00 00       	call   0x40c9a4
409849:	68 ff 00 00 00       	push   $0xff
40984e:	e8 9d 2e 00 00       	call   0x40c6f0
409853:	59                   	pop    %ecx
409854:	59                   	pop    %ecx
409855:	8b 75 08             	mov    0x8(%ebp),%esi
409858:	8d 34 f5 90 b2 42 00 	lea    0x42b290(,%esi,8),%esi
40985f:	39 1e                	cmp    %ebx,(%esi)
409861:	74 04                	je     0x409867
409863:	8b c7                	mov    %edi,%eax
409865:	eb 6e                	jmp    0x4098d5
409867:	6a 18                	push   $0x18
409869:	e8 f2 e2 ff ff       	call   0x407b60
40986e:	59                   	pop    %ecx
40986f:	8b f8                	mov    %eax,%edi
409871:	3b fb                	cmp    %ebx,%edi
409873:	75 0f                	jne    0x409884
409875:	e8 5b c2 ff ff       	call   0x405ad5
40987a:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
409880:	33 c0                	xor    %eax,%eax
409882:	eb 51                	jmp    0x4098d5
409884:	6a 0a                	push   $0xa
409886:	e8 59 00 00 00       	call   0x4098e4
40988b:	59                   	pop    %ecx
40988c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40988f:	39 1e                	cmp    %ebx,(%esi)
409891:	75 2c                	jne    0x4098bf
409893:	68 a0 0f 00 00       	push   $0xfa0
409898:	57                   	push   %edi
409899:	e8 be 97 00 00       	call   0x41305c
40989e:	59                   	pop    %ecx
40989f:	59                   	pop    %ecx
4098a0:	85 c0                	test   %eax,%eax
4098a2:	75 17                	jne    0x4098bb
4098a4:	57                   	push   %edi
4098a5:	e8 76 b7 ff ff       	call   0x405020
4098aa:	59                   	pop    %ecx
4098ab:	e8 25 c2 ff ff       	call   0x405ad5
4098b0:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4098b6:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4098b9:	eb 0b                	jmp    0x4098c6
4098bb:	89 3e                	mov    %edi,(%esi)
4098bd:	eb 07                	jmp    0x4098c6
4098bf:	57                   	push   %edi
4098c0:	e8 5b b7 ff ff       	call   0x405020
4098c5:	59                   	pop    %ecx
4098c6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4098cd:	e8 09 00 00 00       	call   0x4098db
4098d2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4098d5:	e8 47 0b 00 00       	call   0x40a421
4098da:	c3                   	ret
4098db:	6a 0a                	push   $0xa
4098dd:	e8 28 ff ff ff       	call   0x40980a
4098e2:	59                   	pop    %ecx
4098e3:	c3                   	ret
4098e4:	8b ff                	mov    %edi,%edi
4098e6:	55                   	push   %ebp
4098e7:	8b ec                	mov    %esp,%ebp
4098e9:	8b 45 08             	mov    0x8(%ebp),%eax
4098ec:	56                   	push   %esi
4098ed:	8d 34 c5 90 b2 42 00 	lea    0x42b290(,%eax,8),%esi
4098f4:	83 3e 00             	cmpl   $0x0,(%esi)
4098f7:	75 13                	jne    0x40990c
4098f9:	50                   	push   %eax
4098fa:	e8 22 ff ff ff       	call   0x409821
4098ff:	59                   	pop    %ecx
409900:	85 c0                	test   %eax,%eax
409902:	75 08                	jne    0x40990c
409904:	6a 11                	push   $0x11
409906:	e8 91 2d 00 00       	call   0x40c69c
40990b:	59                   	pop    %ecx
40990c:	ff 36                	push   (%esi)
40990e:	ff 15 90 a0 41 00    	call   *0x41a090
409914:	5e                   	pop    %esi
409915:	5d                   	pop    %ebp
409916:	c3                   	ret
409917:	8b ff                	mov    %edi,%edi
409919:	55                   	push   %ebp
40991a:	8b ec                	mov    %esp,%ebp
40991c:	8b 0d 88 23 c7 00    	mov    0xc72388,%ecx
409922:	a1 8c 23 c7 00       	mov    0xc7238c,%eax
409927:	6b c9 14             	imul   $0x14,%ecx,%ecx
40992a:	03 c8                	add    %eax,%ecx
40992c:	eb 11                	jmp    0x40993f
40992e:	8b 55 08             	mov    0x8(%ebp),%edx
409931:	2b 50 0c             	sub    0xc(%eax),%edx
409934:	81 fa 00 00 10 00    	cmp    $0x100000,%edx
40993a:	72 09                	jb     0x409945
40993c:	83 c0 14             	add    $0x14,%eax
40993f:	3b c1                	cmp    %ecx,%eax
409941:	72 eb                	jb     0x40992e
409943:	33 c0                	xor    %eax,%eax
409945:	5d                   	pop    %ebp
409946:	c3                   	ret
409947:	8b ff                	mov    %edi,%edi
409949:	55                   	push   %ebp
40994a:	8b ec                	mov    %esp,%ebp
40994c:	83 ec 10             	sub    $0x10,%esp
40994f:	8b 4d 08             	mov    0x8(%ebp),%ecx
409952:	8b 41 10             	mov    0x10(%ecx),%eax
409955:	56                   	push   %esi
409956:	8b 75 0c             	mov    0xc(%ebp),%esi
409959:	57                   	push   %edi
40995a:	8b fe                	mov    %esi,%edi
40995c:	2b 79 0c             	sub    0xc(%ecx),%edi
40995f:	83 c6 fc             	add    $0xfffffffc,%esi
409962:	c1 ef 0f             	shr    $0xf,%edi
409965:	8b cf                	mov    %edi,%ecx
409967:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
40996d:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
409974:	89 4d f0             	mov    %ecx,-0x10(%ebp)
409977:	8b 0e                	mov    (%esi),%ecx
409979:	49                   	dec    %ecx
40997a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40997d:	f6 c1 01             	test   $0x1,%cl
409980:	0f 85 d3 02 00 00    	jne    0x409c59
409986:	53                   	push   %ebx
409987:	8d 1c 31             	lea    (%ecx,%esi,1),%ebx
40998a:	8b 13                	mov    (%ebx),%edx
40998c:	89 55 f4             	mov    %edx,-0xc(%ebp)
40998f:	8b 56 fc             	mov    -0x4(%esi),%edx
409992:	89 55 f8             	mov    %edx,-0x8(%ebp)
409995:	8b 55 f4             	mov    -0xc(%ebp),%edx
409998:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40999b:	f6 c2 01             	test   $0x1,%dl
40999e:	75 74                	jne    0x409a14
4099a0:	c1 fa 04             	sar    $0x4,%edx
4099a3:	4a                   	dec    %edx
4099a4:	83 fa 3f             	cmp    $0x3f,%edx
4099a7:	76 03                	jbe    0x4099ac
4099a9:	6a 3f                	push   $0x3f
4099ab:	5a                   	pop    %edx
4099ac:	8b 4b 04             	mov    0x4(%ebx),%ecx
4099af:	3b 4b 08             	cmp    0x8(%ebx),%ecx
4099b2:	75 42                	jne    0x4099f6
4099b4:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4099b9:	83 fa 20             	cmp    $0x20,%edx
4099bc:	73 19                	jae    0x4099d7
4099be:	8b ca                	mov    %edx,%ecx
4099c0:	d3 eb                	shr    %cl,%ebx
4099c2:	8d 4c 02 04          	lea    0x4(%edx,%eax,1),%ecx
4099c6:	f7 d3                	not    %ebx
4099c8:	21 5c b8 44          	and    %ebx,0x44(%eax,%edi,4)
4099cc:	fe 09                	decb   (%ecx)
4099ce:	75 23                	jne    0x4099f3
4099d0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4099d3:	21 19                	and    %ebx,(%ecx)
4099d5:	eb 1c                	jmp    0x4099f3
4099d7:	8d 4a e0             	lea    -0x20(%edx),%ecx
4099da:	d3 eb                	shr    %cl,%ebx
4099dc:	8d 4c 02 04          	lea    0x4(%edx,%eax,1),%ecx
4099e0:	f7 d3                	not    %ebx
4099e2:	21 9c b8 c4 00 00 00 	and    %ebx,0xc4(%eax,%edi,4)
4099e9:	fe 09                	decb   (%ecx)
4099eb:	75 06                	jne    0x4099f3
4099ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
4099f0:	21 59 04             	and    %ebx,0x4(%ecx)
4099f3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4099f6:	8b 53 08             	mov    0x8(%ebx),%edx
4099f9:	8b 5b 04             	mov    0x4(%ebx),%ebx
4099fc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4099ff:	03 4d f4             	add    -0xc(%ebp),%ecx
409a02:	89 5a 04             	mov    %ebx,0x4(%edx)
409a05:	8b 55 0c             	mov    0xc(%ebp),%edx
409a08:	8b 5a 04             	mov    0x4(%edx),%ebx
409a0b:	8b 52 08             	mov    0x8(%edx),%edx
409a0e:	89 53 08             	mov    %edx,0x8(%ebx)
409a11:	89 4d fc             	mov    %ecx,-0x4(%ebp)
409a14:	8b d1                	mov    %ecx,%edx
409a16:	c1 fa 04             	sar    $0x4,%edx
409a19:	4a                   	dec    %edx
409a1a:	83 fa 3f             	cmp    $0x3f,%edx
409a1d:	76 03                	jbe    0x409a22
409a1f:	6a 3f                	push   $0x3f
409a21:	5a                   	pop    %edx
409a22:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409a25:	83 e3 01             	and    $0x1,%ebx
409a28:	89 5d f4             	mov    %ebx,-0xc(%ebp)
409a2b:	0f 85 8f 00 00 00    	jne    0x409ac0
409a31:	2b 75 f8             	sub    -0x8(%ebp),%esi
409a34:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409a37:	c1 fb 04             	sar    $0x4,%ebx
409a3a:	6a 3f                	push   $0x3f
409a3c:	89 75 0c             	mov    %esi,0xc(%ebp)
409a3f:	4b                   	dec    %ebx
409a40:	5e                   	pop    %esi
409a41:	3b de                	cmp    %esi,%ebx
409a43:	76 02                	jbe    0x409a47
409a45:	8b de                	mov    %esi,%ebx
409a47:	03 4d f8             	add    -0x8(%ebp),%ecx
409a4a:	8b d1                	mov    %ecx,%edx
409a4c:	c1 fa 04             	sar    $0x4,%edx
409a4f:	4a                   	dec    %edx
409a50:	89 4d fc             	mov    %ecx,-0x4(%ebp)
409a53:	3b d6                	cmp    %esi,%edx
409a55:	76 02                	jbe    0x409a59
409a57:	8b d6                	mov    %esi,%edx
409a59:	3b da                	cmp    %edx,%ebx
409a5b:	74 5e                	je     0x409abb
409a5d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409a60:	8b 71 04             	mov    0x4(%ecx),%esi
409a63:	3b 71 08             	cmp    0x8(%ecx),%esi
409a66:	75 3b                	jne    0x409aa3
409a68:	be 00 00 00 80       	mov    $0x80000000,%esi
409a6d:	83 fb 20             	cmp    $0x20,%ebx
409a70:	73 17                	jae    0x409a89
409a72:	8b cb                	mov    %ebx,%ecx
409a74:	d3 ee                	shr    %cl,%esi
409a76:	f7 d6                	not    %esi
409a78:	21 74 b8 44          	and    %esi,0x44(%eax,%edi,4)
409a7c:	fe 4c 03 04          	decb   0x4(%ebx,%eax,1)
409a80:	75 21                	jne    0x409aa3
409a82:	8b 4d 08             	mov    0x8(%ebp),%ecx
409a85:	21 31                	and    %esi,(%ecx)
409a87:	eb 1a                	jmp    0x409aa3
409a89:	8d 4b e0             	lea    -0x20(%ebx),%ecx
409a8c:	d3 ee                	shr    %cl,%esi
409a8e:	f7 d6                	not    %esi
409a90:	21 b4 b8 c4 00 00 00 	and    %esi,0xc4(%eax,%edi,4)
409a97:	fe 4c 03 04          	decb   0x4(%ebx,%eax,1)
409a9b:	75 06                	jne    0x409aa3
409a9d:	8b 4d 08             	mov    0x8(%ebp),%ecx
409aa0:	21 71 04             	and    %esi,0x4(%ecx)
409aa3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409aa6:	8b 71 08             	mov    0x8(%ecx),%esi
409aa9:	8b 49 04             	mov    0x4(%ecx),%ecx
409aac:	89 4e 04             	mov    %ecx,0x4(%esi)
409aaf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409ab2:	8b 71 04             	mov    0x4(%ecx),%esi
409ab5:	8b 49 08             	mov    0x8(%ecx),%ecx
409ab8:	89 4e 08             	mov    %ecx,0x8(%esi)
409abb:	8b 75 0c             	mov    0xc(%ebp),%esi
409abe:	eb 03                	jmp    0x409ac3
409ac0:	8b 5d 08             	mov    0x8(%ebp),%ebx
409ac3:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
409ac7:	75 08                	jne    0x409ad1
409ac9:	3b da                	cmp    %edx,%ebx
409acb:	0f 84 80 00 00 00    	je     0x409b51
409ad1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409ad4:	8d 0c d1             	lea    (%ecx,%edx,8),%ecx
409ad7:	8b 59 04             	mov    0x4(%ecx),%ebx
409ada:	89 4e 08             	mov    %ecx,0x8(%esi)
409add:	89 5e 04             	mov    %ebx,0x4(%esi)
409ae0:	89 71 04             	mov    %esi,0x4(%ecx)
409ae3:	8b 4e 04             	mov    0x4(%esi),%ecx
409ae6:	89 71 08             	mov    %esi,0x8(%ecx)
409ae9:	8b 4e 04             	mov    0x4(%esi),%ecx
409aec:	3b 4e 08             	cmp    0x8(%esi),%ecx
409aef:	75 60                	jne    0x409b51
409af1:	8a 4c 02 04          	mov    0x4(%edx,%eax,1),%cl
409af5:	88 4d 0f             	mov    %cl,0xf(%ebp)
409af8:	fe c1                	inc    %cl
409afa:	88 4c 02 04          	mov    %cl,0x4(%edx,%eax,1)
409afe:	83 fa 20             	cmp    $0x20,%edx
409b01:	73 25                	jae    0x409b28
409b03:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
409b07:	75 0e                	jne    0x409b17
409b09:	8b ca                	mov    %edx,%ecx
409b0b:	bb 00 00 00 80       	mov    $0x80000000,%ebx
409b10:	d3 eb                	shr    %cl,%ebx
409b12:	8b 4d 08             	mov    0x8(%ebp),%ecx
409b15:	09 19                	or     %ebx,(%ecx)
409b17:	bb 00 00 00 80       	mov    $0x80000000,%ebx
409b1c:	8b ca                	mov    %edx,%ecx
409b1e:	d3 eb                	shr    %cl,%ebx
409b20:	8d 44 b8 44          	lea    0x44(%eax,%edi,4),%eax
409b24:	09 18                	or     %ebx,(%eax)
409b26:	eb 29                	jmp    0x409b51
409b28:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
409b2c:	75 10                	jne    0x409b3e
409b2e:	8d 4a e0             	lea    -0x20(%edx),%ecx
409b31:	bb 00 00 00 80       	mov    $0x80000000,%ebx
409b36:	d3 eb                	shr    %cl,%ebx
409b38:	8b 4d 08             	mov    0x8(%ebp),%ecx
409b3b:	09 59 04             	or     %ebx,0x4(%ecx)
409b3e:	8d 4a e0             	lea    -0x20(%edx),%ecx
409b41:	ba 00 00 00 80       	mov    $0x80000000,%edx
409b46:	d3 ea                	shr    %cl,%edx
409b48:	8d 84 b8 c4 00 00 00 	lea    0xc4(%eax,%edi,4),%eax
409b4f:	09 10                	or     %edx,(%eax)
409b51:	8b 45 fc             	mov    -0x4(%ebp),%eax
409b54:	89 06                	mov    %eax,(%esi)
409b56:	89 44 30 fc          	mov    %eax,-0x4(%eax,%esi,1)
409b5a:	8b 45 f0             	mov    -0x10(%ebp),%eax
409b5d:	ff 08                	decl   (%eax)
409b5f:	0f 85 f3 00 00 00    	jne    0x409c58
409b65:	a1 60 09 43 00       	mov    0x430960,%eax
409b6a:	85 c0                	test   %eax,%eax
409b6c:	0f 84 d8 00 00 00    	je     0x409c4a
409b72:	8b 0d 9c 23 c7 00    	mov    0xc7239c,%ecx
409b78:	8b 35 dc a0 41 00    	mov    0x41a0dc,%esi
409b7e:	68 00 40 00 00       	push   $0x4000
409b83:	c1 e1 0f             	shl    $0xf,%ecx
409b86:	03 48 0c             	add    0xc(%eax),%ecx
409b89:	bb 00 80 00 00       	mov    $0x8000,%ebx
409b8e:	53                   	push   %ebx
409b8f:	51                   	push   %ecx
409b90:	ff d6                	call   *%esi
409b92:	8b 0d 9c 23 c7 00    	mov    0xc7239c,%ecx