40bba0:	8b 0d 4c 09 41 00    	mov    0x41094c,%ecx
40bba6:	56                   	push   %esi
40bba7:	39 50 04             	cmp    %edx,0x4(%eax)
40bbaa:	74 0f                	je     0x40bbbb
40bbac:	8b f1                	mov    %ecx,%esi
40bbae:	6b f6 0c             	imul   $0xc,%esi,%esi
40bbb1:	03 75 08             	add    0x8(%ebp),%esi
40bbb4:	83 c0 0c             	add    $0xc,%eax
40bbb7:	3b c6                	cmp    %esi,%eax
40bbb9:	72 ec                	jb     0x40bba7
40bbbb:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40bbbe:	03 4d 08             	add    0x8(%ebp),%ecx
40bbc1:	5e                   	pop    %esi
40bbc2:	3b c1                	cmp    %ecx,%eax
40bbc4:	73 05                	jae    0x40bbcb
40bbc6:	39 50 04             	cmp    %edx,0x4(%eax)
40bbc9:	74 02                	je     0x40bbcd
40bbcb:	33 c0                	xor    %eax,%eax
40bbcd:	5d                   	pop    %ebp
40bbce:	c3                   	ret
40bbcf:	ff 35 3c 3b 41 00    	push   0x413b3c
40bbd5:	ff 15 90 f0 40 00    	call   *0x40f090
40bbdb:	c3                   	ret
40bbdc:	6a 20                	push   $0x20
40bbde:	68 d0 13 41 00       	push   $0x4113d0
40bbe3:	e8 88 85 ff ff       	call   0x404170
40bbe8:	33 ff                	xor    %edi,%edi
40bbea:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40bbed:	89 7d d8             	mov    %edi,-0x28(%ebp)
40bbf0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40bbf3:	83 fb 0b             	cmp    $0xb,%ebx
40bbf6:	7f 4b                	jg     0x40bc43
40bbf8:	74 15                	je     0x40bc0f
40bbfa:	8b c3                	mov    %ebx,%eax
40bbfc:	6a 02                	push   $0x2
40bbfe:	59                   	pop    %ecx
40bbff:	2b c1                	sub    %ecx,%eax
40bc01:	74 22                	je     0x40bc25
40bc03:	2b c1                	sub    %ecx,%eax
40bc05:	74 08                	je     0x40bc0f
40bc07:	2b c1                	sub    %ecx,%eax
40bc09:	74 59                	je     0x40bc64
40bc0b:	2b c1                	sub    %ecx,%eax
40bc0d:	75 43                	jne    0x40bc52
40bc0f:	e8 59 a1 ff ff       	call   0x405d6d
40bc14:	8b f8                	mov    %eax,%edi
40bc16:	89 7d d8             	mov    %edi,-0x28(%ebp)
40bc19:	85 ff                	test   %edi,%edi
40bc1b:	75 14                	jne    0x40bc31
40bc1d:	83 c8 ff             	or     $0xffffffff,%eax
40bc20:	e9 54 01 00 00       	jmp    0x40bd79
40bc25:	be 34 3b 41 00       	mov    $0x413b34,%esi
40bc2a:	a1 34 3b 41 00       	mov    0x413b34,%eax
40bc2f:	eb 55                	jmp    0x40bc86
40bc31:	ff 77 5c             	push   0x5c(%edi)
40bc34:	8b d3                	mov    %ebx,%edx
40bc36:	e8 5d ff ff ff       	call   0x40bb98
40bc3b:	59                   	pop    %ecx
40bc3c:	8d 70 08             	lea    0x8(%eax),%esi
40bc3f:	8b 06                	mov    (%esi),%eax
40bc41:	eb 51                	jmp    0x40bc94
40bc43:	8b c3                	mov    %ebx,%eax
40bc45:	83 e8 0f             	sub    $0xf,%eax
40bc48:	74 32                	je     0x40bc7c
40bc4a:	83 e8 06             	sub    $0x6,%eax
40bc4d:	74 21                	je     0x40bc70
40bc4f:	48                   	dec    %eax
40bc50:	74 12                	je     0x40bc64
40bc52:	e8 d0 84 ff ff       	call   0x404127
40bc57:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40bc5d:	e8 25 70 ff ff       	call   0x402c87
40bc62:	eb b9                	jmp    0x40bc1d
40bc64:	be 3c 3b 41 00       	mov    $0x413b3c,%esi
40bc69:	a1 3c 3b 41 00       	mov    0x413b3c,%eax
40bc6e:	eb 16                	jmp    0x40bc86
40bc70:	be 38 3b 41 00       	mov    $0x413b38,%esi
40bc75:	a1 38 3b 41 00       	mov    0x413b38,%eax
40bc7a:	eb 0a                	jmp    0x40bc86
40bc7c:	be 40 3b 41 00       	mov    $0x413b40,%esi
40bc81:	a1 40 3b 41 00       	mov    0x413b40,%eax
40bc86:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
40bc8d:	50                   	push   %eax
40bc8e:	ff 15 90 f0 40 00    	call   *0x40f090
40bc94:	89 45 e0             	mov    %eax,-0x20(%ebp)
40bc97:	33 c0                	xor    %eax,%eax
40bc99:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
40bc9d:	0f 84 d6 00 00 00    	je     0x40bd79
40bca3:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40bca6:	75 07                	jne    0x40bcaf
40bca8:	6a 03                	push   $0x3
40bcaa:	e8 34 a7 ff ff       	call   0x4063e3
40bcaf:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
40bcb2:	74 07                	je     0x40bcbb
40bcb4:	50                   	push   %eax
40bcb5:	e8 df b0 ff ff       	call   0x406d99
40bcba:	59                   	pop    %ecx
40bcbb:	33 c0                	xor    %eax,%eax
40bcbd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bcc0:	83 fb 08             	cmp    $0x8,%ebx
40bcc3:	74 0a                	je     0x40bccf
40bcc5:	83 fb 0b             	cmp    $0xb,%ebx
40bcc8:	74 05                	je     0x40bccf
40bcca:	83 fb 04             	cmp    $0x4,%ebx
40bccd:	75 1b                	jne    0x40bcea
40bccf:	8b 4f 60             	mov    0x60(%edi),%ecx
40bcd2:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40bcd5:	89 47 60             	mov    %eax,0x60(%edi)
40bcd8:	83 fb 08             	cmp    $0x8,%ebx
40bcdb:	75 3e                	jne    0x40bd1b
40bcdd:	8b 4f 64             	mov    0x64(%edi),%ecx
40bce0:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40bce3:	c7 47 64 8c 00 00 00 	movl   $0x8c,0x64(%edi)
40bcea:	83 fb 08             	cmp    $0x8,%ebx
40bced:	75 2c                	jne    0x40bd1b
40bcef:	8b 0d 40 09 41 00    	mov    0x410940,%ecx
40bcf5:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40bcf8:	8b 0d 44 09 41 00    	mov    0x410944,%ecx
40bcfe:	03 0d 40 09 41 00    	add    0x410940,%ecx
40bd04:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
40bd07:	7d 19                	jge    0x40bd22
40bd09:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40bd0c:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40bd0f:	8b 57 5c             	mov    0x5c(%edi),%edx
40bd12:	89 44 11 08          	mov    %eax,0x8(%ecx,%edx,1)
40bd16:	ff 45 dc             	incl   -0x24(%ebp)
40bd19:	eb dd                	jmp    0x40bcf8
40bd1b:	e8 16 9f ff ff       	call   0x405c36
40bd20:	89 06                	mov    %eax,(%esi)
40bd22:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bd29:	e8 15 00 00 00       	call   0x40bd43
40bd2e:	83 fb 08             	cmp    $0x8,%ebx
40bd31:	75 1f                	jne    0x40bd52
40bd33:	ff 77 64             	push   0x64(%edi)
40bd36:	53                   	push   %ebx
40bd37:	ff 55 e0             	call   *-0x20(%ebp)
40bd3a:	59                   	pop    %ecx
40bd3b:	eb 19                	jmp    0x40bd56
40bd3d:	8b 5d 08             	mov    0x8(%ebp),%ebx
40bd40:	8b 7d d8             	mov    -0x28(%ebp),%edi
40bd43:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
40bd47:	74 08                	je     0x40bd51
40bd49:	6a 00                	push   $0x0
40bd4b:	e8 70 af ff ff       	call   0x406cc0
40bd50:	59                   	pop    %ecx
40bd51:	c3                   	ret
40bd52:	53                   	push   %ebx
40bd53:	ff 55 e0             	call   *-0x20(%ebp)
40bd56:	59                   	pop    %ecx
40bd57:	83 fb 08             	cmp    $0x8,%ebx
40bd5a:	74 0a                	je     0x40bd66
40bd5c:	83 fb 0b             	cmp    $0xb,%ebx
40bd5f:	74 05                	je     0x40bd66
40bd61:	83 fb 04             	cmp    $0x4,%ebx
40bd64:	75 11                	jne    0x40bd77
40bd66:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40bd69:	89 47 60             	mov    %eax,0x60(%edi)
40bd6c:	83 fb 08             	cmp    $0x8,%ebx
40bd6f:	75 06                	jne    0x40bd77
40bd71:	8b 45 d0             	mov    -0x30(%ebp),%eax
40bd74:	89 47 64             	mov    %eax,0x64(%edi)
40bd77:	33 c0                	xor    %eax,%eax
40bd79:	e8 37 84 ff ff       	call   0x4041b5
40bd7e:	c3                   	ret
40bd7f:	8b ff                	mov    %edi,%edi
40bd81:	55                   	push   %ebp
40bd82:	8b ec                	mov    %esp,%ebp
40bd84:	8b 45 08             	mov    0x8(%ebp),%eax
40bd87:	a3 48 3b 41 00       	mov    %eax,0x413b48
40bd8c:	5d                   	pop    %ebp
40bd8d:	c3                   	ret
40bd8e:	8b ff                	mov    %edi,%edi
40bd90:	55                   	push   %ebp
40bd91:	8b ec                	mov    %esp,%ebp
40bd93:	8b 45 08             	mov    0x8(%ebp),%eax
40bd96:	a3 4c 3b 41 00       	mov    %eax,0x413b4c
40bd9b:	5d                   	pop    %ebp
40bd9c:	c3                   	ret
40bd9d:	8b ff                	mov    %edi,%edi
40bd9f:	55                   	push   %ebp
40bda0:	8b ec                	mov    %esp,%ebp
40bda2:	51                   	push   %ecx
40bda3:	53                   	push   %ebx
40bda4:	56                   	push   %esi
40bda5:	8b 35 90 f0 40 00    	mov    0x40f090,%esi
40bdab:	57                   	push   %edi
40bdac:	ff 35 28 47 41 00    	push   0x414728
40bdb2:	ff d6                	call   *%esi
40bdb4:	ff 35 24 47 41 00    	push   0x414724
40bdba:	8b d8                	mov    %eax,%ebx
40bdbc:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40bdbf:	ff d6                	call   *%esi
40bdc1:	8b f0                	mov    %eax,%esi
40bdc3:	3b f3                	cmp    %ebx,%esi
40bdc5:	0f 82 81 00 00 00    	jb     0x40be4c
40bdcb:	8b fe                	mov    %esi,%edi
40bdcd:	2b fb                	sub    %ebx,%edi
40bdcf:	8d 47 04             	lea    0x4(%edi),%eax
40bdd2:	83 f8 04             	cmp    $0x4,%eax
40bdd5:	72 75                	jb     0x40be4c
40bdd7:	53                   	push   %ebx
40bdd8:	e8 96 27 00 00       	call   0x40e573
40bddd:	8b d8                	mov    %eax,%ebx
40bddf:	8d 47 04             	lea    0x4(%edi),%eax
40bde2:	59                   	pop    %ecx
40bde3:	3b d8                	cmp    %eax,%ebx
40bde5:	73 48                	jae    0x40be2f
40bde7:	b8 00 08 00 00       	mov    $0x800,%eax
40bdec:	3b d8                	cmp    %eax,%ebx
40bdee:	73 02                	jae    0x40bdf2
40bdf0:	8b c3                	mov    %ebx,%eax
40bdf2:	03 c3                	add    %ebx,%eax
40bdf4:	3b c3                	cmp    %ebx,%eax
40bdf6:	72 0f                	jb     0x40be07
40bdf8:	50                   	push   %eax
40bdf9:	ff 75 fc             	push   -0x4(%ebp)
40bdfc:	e8 4f ab ff ff       	call   0x406950
40be01:	59                   	pop    %ecx
40be02:	59                   	pop    %ecx
40be03:	85 c0                	test   %eax,%eax
40be05:	75 16                	jne    0x40be1d
40be07:	8d 43 10             	lea    0x10(%ebx),%eax
40be0a:	3b c3                	cmp    %ebx,%eax
40be0c:	72 3e                	jb     0x40be4c
40be0e:	50                   	push   %eax
40be0f:	ff 75 fc             	push   -0x4(%ebp)
40be12:	e8 39 ab ff ff       	call   0x406950
40be17:	59                   	pop    %ecx
40be18:	59                   	pop    %ecx
40be19:	85 c0                	test   %eax,%eax
40be1b:	74 2f                	je     0x40be4c
40be1d:	c1 ff 02             	sar    $0x2,%edi
40be20:	50                   	push   %eax
40be21:	8d 34 b8             	lea    (%eax,%edi,4),%esi
40be24:	ff 15 8c f0 40 00    	call   *0x40f08c
40be2a:	a3 28 47 41 00       	mov    %eax,0x414728
40be2f:	ff 75 08             	push   0x8(%ebp)
40be32:	8b 3d 8c f0 40 00    	mov    0x40f08c,%edi
40be38:	ff d7                	call   *%edi
40be3a:	89 06                	mov    %eax,(%esi)
40be3c:	83 c6 04             	add    $0x4,%esi
40be3f:	56                   	push   %esi
40be40:	ff d7                	call   *%edi
40be42:	a3 24 47 41 00       	mov    %eax,0x414724
40be47:	8b 45 08             	mov    0x8(%ebp),%eax
40be4a:	eb 02                	jmp    0x40be4e
40be4c:	33 c0                	xor    %eax,%eax
40be4e:	5f                   	pop    %edi
40be4f:	5e                   	pop    %esi
40be50:	5b                   	pop    %ebx
40be51:	c9                   	leave
40be52:	c3                   	ret
40be53:	8b ff                	mov    %edi,%edi
40be55:	56                   	push   %esi
40be56:	6a 04                	push   $0x4
40be58:	6a 20                	push   $0x20
40be5a:	e8 a5 aa ff ff       	call   0x406904
40be5f:	59                   	pop    %ecx
40be60:	59                   	pop    %ecx
40be61:	8b f0                	mov    %eax,%esi
40be63:	56                   	push   %esi
40be64:	ff 15 8c f0 40 00    	call   *0x40f08c
40be6a:	a3 28 47 41 00       	mov    %eax,0x414728
40be6f:	a3 24 47 41 00       	mov    %eax,0x414724
40be74:	85 f6                	test   %esi,%esi
40be76:	75 05                	jne    0x40be7d
40be78:	6a 18                	push   $0x18
40be7a:	58                   	pop    %eax
40be7b:	5e                   	pop    %esi
40be7c:	c3                   	ret
40be7d:	83 26 00             	andl   $0x0,(%esi)
40be80:	33 c0                	xor    %eax,%eax
40be82:	5e                   	pop    %esi
40be83:	c3                   	ret
40be84:	6a 0c                	push   $0xc
40be86:	68 f0 13 41 00       	push   $0x4113f0
40be8b:	e8 e0 82 ff ff       	call   0x404170
40be90:	e8 f8 a2 ff ff       	call   0x40618d
40be95:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40be99:	ff 75 08             	push   0x8(%ebp)
40be9c:	e8 fc fe ff ff       	call   0x40bd9d
40bea1:	59                   	pop    %ecx
40bea2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40bea5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40beac:	e8 09 00 00 00       	call   0x40beba
40beb1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40beb4:	e8 fc 82 ff ff       	call   0x4041b5
40beb9:	c3                   	ret
40beba:	e8 d7 a2 ff ff       	call   0x406196
40bebf:	c3                   	ret
40bec0:	8b ff                	mov    %edi,%edi
40bec2:	55                   	push   %ebp
40bec3:	8b ec                	mov    %esp,%ebp
40bec5:	ff 75 08             	push   0x8(%ebp)
40bec8:	e8 b7 ff ff ff       	call   0x40be84
40becd:	f7 d8                	neg    %eax
40becf:	1b c0                	sbb    %eax,%eax
40bed1:	f7 d8                	neg    %eax
40bed3:	59                   	pop    %ecx
40bed4:	48                   	dec    %eax
40bed5:	5d                   	pop    %ebp
40bed6:	c3                   	ret
40bed7:	cc                   	int3
40bed8:	cc                   	int3
40bed9:	8b ff                	mov    %edi,%edi
40bedb:	55                   	push   %ebp
40bedc:	8b ec                	mov    %esp,%ebp
40bede:	83 ec 24             	sub    $0x24,%esp
40bee1:	a1 84 22 41 00       	mov    0x412284,%eax
40bee6:	33 c5                	xor    %ebp,%eax
40bee8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40beeb:	8b 45 08             	mov    0x8(%ebp),%eax
40beee:	53                   	push   %ebx
40beef:	89 45 e0             	mov    %eax,-0x20(%ebp)
40bef2:	8b 45 0c             	mov    0xc(%ebp),%eax
40bef5:	56                   	push   %esi
40bef6:	57                   	push   %edi
40bef7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40befa:	e8 37 9d ff ff       	call   0x405c36
40beff:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40bf03:	83 3d 50 3b 41 00 00 	cmpl   $0x0,0x413b50
40bf0a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40bf0d:	75 7d                	jne    0x40bf8c
40bf0f:	68 b4 09 41 00       	push   $0x4109b4
40bf14:	ff 15 28 f1 40 00    	call   *0x40f128
40bf1a:	8b d8                	mov    %eax,%ebx
40bf1c:	85 db                	test   %ebx,%ebx
40bf1e:	0f 84 10 01 00 00    	je     0x40c034
40bf24:	8b 3d e4 f0 40 00    	mov    0x40f0e4,%edi
40bf2a:	68 a8 09 41 00       	push   $0x4109a8
40bf2f:	53                   	push   %ebx
40bf30:	ff d7                	call   *%edi
40bf32:	85 c0                	test   %eax,%eax
40bf34:	0f 84 fa 00 00 00    	je     0x40c034
40bf3a:	8b 35 8c f0 40 00    	mov    0x40f08c,%esi
40bf40:	50                   	push   %eax
40bf41:	ff d6                	call   *%esi
40bf43:	68 98 09 41 00       	push   $0x410998
40bf48:	53                   	push   %ebx
40bf49:	a3 50 3b 41 00       	mov    %eax,0x413b50
40bf4e:	ff d7                	call   *%edi
40bf50:	50                   	push   %eax
40bf51:	ff d6                	call   *%esi
40bf53:	68 84 09 41 00       	push   $0x410984
40bf58:	53                   	push   %ebx
40bf59:	a3 54 3b 41 00       	mov    %eax,0x413b54
40bf5e:	ff d7                	call   *%edi
40bf60:	50                   	push   %eax
40bf61:	ff d6                	call   *%esi
40bf63:	68 68 09 41 00       	push   $0x410968
40bf68:	53                   	push   %ebx