40b976:	83 c7 10             	add    $0x10,%edi
40b979:	48                   	dec    %eax
40b97a:	89 45 08             	mov    %eax,0x8(%ebp)
40b97d:	75 b2                	jne    0x40b931
40b97f:	56                   	push   %esi
40b980:	e8 93 97 ff ff       	call   0x405118
40b985:	59                   	pop    %ecx
40b986:	5f                   	pop    %edi
40b987:	5e                   	pop    %esi
40b988:	5b                   	pop    %ebx
40b989:	5d                   	pop    %ebp
40b98a:	c3                   	ret
40b98b:	55                   	push   %ebp
40b98c:	8b ec                	mov    %esp,%ebp
40b98e:	56                   	push   %esi
40b98f:	8b 75 08             	mov    0x8(%ebp),%esi
40b992:	85 f6                	test   %esi,%esi
40b994:	0f 84 87 00 00 00    	je     0x40ba21
40b99a:	53                   	push   %ebx
40b99b:	57                   	push   %edi
40b99c:	8b 3d 54 90 41 00    	mov    0x419054,%edi
40b9a2:	56                   	push   %esi
40b9a3:	ff d7                	call   *%edi
40b9a5:	83 7e 78 00          	cmpl   $0x0,0x78(%esi)
40b9a9:	74 05                	je     0x40b9b0
40b9ab:	ff 76 78             	push   0x78(%esi)
40b9ae:	ff d7                	call   *%edi
40b9b0:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
40b9b6:	85 c0                	test   %eax,%eax
40b9b8:	74 03                	je     0x40b9bd
40b9ba:	50                   	push   %eax
40b9bb:	ff d7                	call   *%edi
40b9bd:	83 7e 7c 00          	cmpl   $0x0,0x7c(%esi)
40b9c1:	74 05                	je     0x40b9c8
40b9c3:	ff 76 7c             	push   0x7c(%esi)
40b9c6:	ff d7                	call   *%edi
40b9c8:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
40b9ce:	85 c0                	test   %eax,%eax
40b9d0:	74 03                	je     0x40b9d5
40b9d2:	50                   	push   %eax
40b9d3:	ff d7                	call   *%edi
40b9d5:	6a 06                	push   $0x6
40b9d7:	58                   	pop    %eax
40b9d8:	8d 5e 1c             	lea    0x1c(%esi),%ebx
40b9db:	89 45 08             	mov    %eax,0x8(%ebp)
40b9de:	81 7b f8 dc 0d 42 00 	cmpl   $0x420ddc,-0x8(%ebx)
40b9e5:	74 0c                	je     0x40b9f3
40b9e7:	83 3b 00             	cmpl   $0x0,(%ebx)
40b9ea:	74 07                	je     0x40b9f3
40b9ec:	ff 33                	push   (%ebx)
40b9ee:	ff d7                	call   *%edi
40b9f0:	8b 45 08             	mov    0x8(%ebp),%eax
40b9f3:	83 7b f4 00          	cmpl   $0x0,-0xc(%ebx)
40b9f7:	74 0e                	je     0x40ba07
40b9f9:	83 7b fc 00          	cmpl   $0x0,-0x4(%ebx)
40b9fd:	74 08                	je     0x40ba07
40b9ff:	ff 73 fc             	push   -0x4(%ebx)
40ba02:	ff d7                	call   *%edi
40ba04:	8b 45 08             	mov    0x8(%ebp),%eax
40ba07:	83 c3 10             	add    $0x10,%ebx
40ba0a:	48                   	dec    %eax
40ba0b:	89 45 08             	mov    %eax,0x8(%ebp)
40ba0e:	75 ce                	jne    0x40b9de
40ba10:	8b 8e 9c 00 00 00    	mov    0x9c(%esi),%ecx
40ba16:	81 c1 b0 00 00 00    	add    $0xb0,%ecx
40ba1c:	51                   	push   %ecx
40ba1d:	ff d7                	call   *%edi
40ba1f:	5f                   	pop    %edi
40ba20:	5b                   	pop    %ebx
40ba21:	8b c6                	mov    %esi,%eax
40ba23:	5e                   	pop    %esi
40ba24:	5d                   	pop    %ebp
40ba25:	c3                   	ret
40ba26:	6a 0c                	push   $0xc
40ba28:	68 f0 e4 41 00       	push   $0x41e4f0
40ba2d:	e8 7e f3 ff ff       	call   0x40adb0
40ba32:	e8 9f 09 00 00       	call   0x40c3d6
40ba37:	8b f0                	mov    %eax,%esi
40ba39:	8b 0d 0c 10 42 00    	mov    0x42100c,%ecx
40ba3f:	85 4e 70             	test   %ecx,0x70(%esi)
40ba42:	74 22                	je     0x40ba66
40ba44:	83 7e 6c 00          	cmpl   $0x0,0x6c(%esi)
40ba48:	74 1c                	je     0x40ba66
40ba4a:	e8 87 09 00 00       	call   0x40c3d6
40ba4f:	8b 70 6c             	mov    0x6c(%eax),%esi
40ba52:	85 f6                	test   %esi,%esi
40ba54:	75 08                	jne    0x40ba5e
40ba56:	6a 20                	push   $0x20
40ba58:	e8 6e f0 ff ff       	call   0x40aacb
40ba5d:	59                   	pop    %ecx
40ba5e:	8b c6                	mov    %esi,%eax
40ba60:	e8 90 f3 ff ff       	call   0x40adf5
40ba65:	c3                   	ret
40ba66:	6a 0c                	push   $0xc
40ba68:	e8 3a ca ff ff       	call   0x4084a7
40ba6d:	59                   	pop    %ecx
40ba6e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ba72:	ff 35 44 0f 42 00    	push   0x420f44
40ba78:	8d 46 6c             	lea    0x6c(%esi),%eax
40ba7b:	50                   	push   %eax
40ba7c:	e8 21 00 00 00       	call   0x40baa2
40ba81:	59                   	pop    %ecx
40ba82:	59                   	pop    %ecx
40ba83:	8b f0                	mov    %eax,%esi
40ba85:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ba88:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ba8f:	e8 05 00 00 00       	call   0x40ba99
40ba94:	eb bc                	jmp    0x40ba52
40ba96:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40ba99:	6a 0c                	push   $0xc
40ba9b:	e8 6b cb ff ff       	call   0x40860b
40baa0:	59                   	pop    %ecx
40baa1:	c3                   	ret
40baa2:	55                   	push   %ebp
40baa3:	8b ec                	mov    %esp,%ebp
40baa5:	57                   	push   %edi
40baa6:	8b 7d 0c             	mov    0xc(%ebp),%edi
40baa9:	85 ff                	test   %edi,%edi
40baab:	74 3b                	je     0x40bae8
40baad:	8b 45 08             	mov    0x8(%ebp),%eax
40bab0:	85 c0                	test   %eax,%eax
40bab2:	74 34                	je     0x40bae8
40bab4:	56                   	push   %esi
40bab5:	8b 30                	mov    (%eax),%esi
40bab7:	3b f7                	cmp    %edi,%esi
40bab9:	74 28                	je     0x40bae3
40babb:	57                   	push   %edi
40babc:	89 38                	mov    %edi,(%eax)
40babe:	e8 de fc ff ff       	call   0x40b7a1
40bac3:	59                   	pop    %ecx
40bac4:	85 f6                	test   %esi,%esi
40bac6:	74 1b                	je     0x40bae3
40bac8:	56                   	push   %esi
40bac9:	e8 bd fe ff ff       	call   0x40b98b
40bace:	83 3e 00             	cmpl   $0x0,(%esi)
40bad1:	59                   	pop    %ecx
40bad2:	75 0f                	jne    0x40bae3
40bad4:	81 fe 48 0f 42 00    	cmp    $0x420f48,%esi
40bada:	74 07                	je     0x40bae3
40badc:	56                   	push   %esi
40badd:	e8 4f fd ff ff       	call   0x40b831
40bae2:	59                   	pop    %ecx
40bae3:	8b c7                	mov    %edi,%eax
40bae5:	5e                   	pop    %esi
40bae6:	eb 02                	jmp    0x40baea
40bae8:	33 c0                	xor    %eax,%eax
40baea:	5f                   	pop    %edi
40baeb:	5d                   	pop    %ebp
40baec:	c3                   	ret
40baed:	83 3d 2c 2b 42 00 00 	cmpl   $0x0,0x422b2c
40baf4:	75 12                	jne    0x40bb08
40baf6:	6a fd                	push   $0xfffffffd
40baf8:	e8 50 03 00 00       	call   0x40be4d
40bafd:	59                   	pop    %ecx
40bafe:	c7 05 2c 2b 42 00 01 	movl   $0x1,0x422b2c
40bb05:	00 00 00
40bb08:	33 c0                	xor    %eax,%eax
40bb0a:	c3                   	ret
40bb0b:	55                   	push   %ebp
40bb0c:	8b ec                	mov    %esp,%ebp
40bb0e:	8b 45 08             	mov    0x8(%ebp),%eax
40bb11:	2d a4 03 00 00       	sub    $0x3a4,%eax
40bb16:	74 26                	je     0x40bb3e
40bb18:	83 e8 04             	sub    $0x4,%eax
40bb1b:	74 1a                	je     0x40bb37
40bb1d:	83 e8 0d             	sub    $0xd,%eax
40bb20:	74 0e                	je     0x40bb30
40bb22:	48                   	dec    %eax
40bb23:	74 04                	je     0x40bb29
40bb25:	33 c0                	xor    %eax,%eax
40bb27:	5d                   	pop    %ebp
40bb28:	c3                   	ret
40bb29:	a1 68 b6 41 00       	mov    0x41b668,%eax
40bb2e:	5d                   	pop    %ebp
40bb2f:	c3                   	ret
40bb30:	a1 64 b6 41 00       	mov    0x41b664,%eax
40bb35:	5d                   	pop    %ebp
40bb36:	c3                   	ret
40bb37:	a1 60 b6 41 00       	mov    0x41b660,%eax
40bb3c:	5d                   	pop    %ebp
40bb3d:	c3                   	ret
40bb3e:	a1 5c b6 41 00       	mov    0x41b65c,%eax
40bb43:	5d                   	pop    %ebp
40bb44:	c3                   	ret
40bb45:	55                   	push   %ebp
40bb46:	8b ec                	mov    %esp,%ebp
40bb48:	83 ec 10             	sub    $0x10,%esp
40bb4b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40bb4e:	6a 00                	push   $0x0
40bb50:	e8 a8 96 ff ff       	call   0x4051fd
40bb55:	8b 45 08             	mov    0x8(%ebp),%eax
40bb58:	83 25 70 27 42 00 00 	andl   $0x0,0x422770
40bb5f:	83 f8 fe             	cmp    $0xfffffffe,%eax
40bb62:	75 12                	jne    0x40bb76
40bb64:	c7 05 70 27 42 00 01 	movl   $0x1,0x422770
40bb6b:	00 00 00
40bb6e:	ff 15 c4 90 41 00    	call   *0x4190c4
40bb74:	eb 2c                	jmp    0x40bba2
40bb76:	83 f8 fd             	cmp    $0xfffffffd,%eax
40bb79:	75 12                	jne    0x40bb8d
40bb7b:	c7 05 70 27 42 00 01 	movl   $0x1,0x422770
40bb82:	00 00 00
40bb85:	ff 15 c0 90 41 00    	call   *0x4190c0
40bb8b:	eb 15                	jmp    0x40bba2
40bb8d:	83 f8 fc             	cmp    $0xfffffffc,%eax
40bb90:	75 10                	jne    0x40bba2
40bb92:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bb95:	c7 05 70 27 42 00 01 	movl   $0x1,0x422770
40bb9c:	00 00 00
40bb9f:	8b 40 04             	mov    0x4(%eax),%eax
40bba2:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40bba6:	74 07                	je     0x40bbaf
40bba8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40bbab:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40bbaf:	c9                   	leave
40bbb0:	c3                   	ret
40bbb1:	55                   	push   %ebp
40bbb2:	8b ec                	mov    %esp,%ebp
40bbb4:	53                   	push   %ebx
40bbb5:	8b 5d 08             	mov    0x8(%ebp),%ebx
40bbb8:	56                   	push   %esi
40bbb9:	57                   	push   %edi
40bbba:	68 01 01 00 00       	push   $0x101
40bbbf:	33 ff                	xor    %edi,%edi
40bbc1:	8d 73 18             	lea    0x18(%ebx),%esi
40bbc4:	57                   	push   %edi
40bbc5:	56                   	push   %esi
40bbc6:	e8 75 b3 ff ff       	call   0x406f40
40bbcb:	33 c0                	xor    %eax,%eax
40bbcd:	0f b7 c8             	movzwl %ax,%ecx
40bbd0:	89 7b 04             	mov    %edi,0x4(%ebx)
40bbd3:	89 7b 08             	mov    %edi,0x8(%ebx)
40bbd6:	89 bb 1c 02 00 00    	mov    %edi,0x21c(%ebx)
40bbdc:	8b c1                	mov    %ecx,%eax
40bbde:	c1 e1 10             	shl    $0x10,%ecx
40bbe1:	0b c1                	or     %ecx,%eax
40bbe3:	8d 7b 0c             	lea    0xc(%ebx),%edi
40bbe6:	ab                   	stos   %eax,%es:(%edi)
40bbe7:	ab                   	stos   %eax,%es:(%edi)
40bbe8:	ab                   	stos   %eax,%es:(%edi)
40bbe9:	bf b8 0b 42 00       	mov    $0x420bb8,%edi
40bbee:	83 c4 0c             	add    $0xc,%esp
40bbf1:	2b fb                	sub    %ebx,%edi
40bbf3:	b9 01 01 00 00       	mov    $0x101,%ecx
40bbf8:	8a 04 37             	mov    (%edi,%esi,1),%al
40bbfb:	88 06                	mov    %al,(%esi)
40bbfd:	46                   	inc    %esi
40bbfe:	49                   	dec    %ecx
40bbff:	75 f7                	jne    0x40bbf8
40bc01:	8d 8b 19 01 00 00    	lea    0x119(%ebx),%ecx
40bc07:	ba 00 01 00 00       	mov    $0x100,%edx
40bc0c:	8a 04 39             	mov    (%ecx,%edi,1),%al
40bc0f:	88 01                	mov    %al,(%ecx)
40bc11:	41                   	inc    %ecx
40bc12:	4a                   	dec    %edx
40bc13:	75 f7                	jne    0x40bc0c
40bc15:	5f                   	pop    %edi
40bc16:	5e                   	pop    %esi
40bc17:	5b                   	pop    %ebx
40bc18:	5d                   	pop    %ebp
40bc19:	c3                   	ret
40bc1a:	55                   	push   %ebp
40bc1b:	8b ec                	mov    %esp,%ebp
40bc1d:	81 ec 20 05 00 00    	sub    $0x520,%esp
40bc23:	a1 90 08 42 00       	mov    0x420890,%eax
40bc28:	33 c5                	xor    %ebp,%eax
40bc2a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bc2d:	53                   	push   %ebx
40bc2e:	56                   	push   %esi
40bc2f:	8b 75 08             	mov    0x8(%ebp),%esi
40bc32:	57                   	push   %edi
40bc33:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
40bc39:	50                   	push   %eax
40bc3a:	ff 76 04             	push   0x4(%esi)
40bc3d:	ff 15 8c 90 41 00    	call   *0x41908c
40bc43:	33 db                	xor    %ebx,%ebx
40bc45:	bf 00 01 00 00       	mov    $0x100,%edi
40bc4a:	85 c0                	test   %eax,%eax
40bc4c:	0f 84 f0 00 00 00    	je     0x40bd42
40bc52:	8b c3                	mov    %ebx,%eax
40bc54:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
40bc5b:	40                   	inc    %eax
40bc5c:	3b c7                	cmp    %edi,%eax
40bc5e:	72 f4                	jb     0x40bc54
40bc60:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
40bc66:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
40bc6d:	8d 8d ee fa ff ff    	lea    -0x512(%ebp),%ecx
40bc73:	eb 1f                	jmp    0x40bc94
40bc75:	0f b6 51 01          	movzbl 0x1(%ecx),%edx
40bc79:	0f b6 c0             	movzbl %al,%eax
40bc7c:	eb 0d                	jmp    0x40bc8b
40bc7e:	3b c7                	cmp    %edi,%eax
40bc80:	73 0d                	jae    0x40bc8f
40bc82:	c6 84 05 fc fe ff ff 	movb   $0x20,-0x104(%ebp,%eax,1)
40bc89:	20
40bc8a:	40                   	inc    %eax
40bc8b:	3b c2                	cmp    %edx,%eax
40bc8d:	76 ef                	jbe    0x40bc7e
40bc8f:	83 c1 02             	add    $0x2,%ecx
40bc92:	8a 01                	mov    (%ecx),%al
40bc94:	84 c0                	test   %al,%al
40bc96:	75 dd                	jne    0x40bc75
40bc98:	53                   	push   %ebx
40bc99:	ff 76 04             	push   0x4(%esi)
40bc9c:	8d 85 fc fa ff ff    	lea    -0x504(%ebp),%eax
40bca2:	50                   	push   %eax
40bca3:	57                   	push   %edi
40bca4:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40bcaa:	50                   	push   %eax
40bcab:	6a 01                	push   $0x1
40bcad:	53                   	push   %ebx
40bcae:	e8 62 37 00 00       	call   0x40f415
40bcb3:	53                   	push   %ebx
40bcb4:	ff 76 04             	push   0x4(%esi)
40bcb7:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40bcbd:	57                   	push   %edi
40bcbe:	50                   	push   %eax
40bcbf:	57                   	push   %edi
40bcc0:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40bcc6:	50                   	push   %eax
40bcc7:	57                   	push   %edi
40bcc8:	ff b6 1c 02 00 00    	push   0x21c(%esi)
40bcce:	53                   	push   %ebx
40bccf:	e8 22 cd ff ff       	call   0x4089f6
40bcd4:	83 c4 40             	add    $0x40,%esp
40bcd7:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
40bcdd:	53                   	push   %ebx
40bcde:	ff 76 04             	push   0x4(%esi)
40bce1:	57                   	push   %edi
40bce2:	50                   	push   %eax
40bce3:	57                   	push   %edi
40bce4:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40bcea:	50                   	push   %eax
40bceb:	68 00 02 00 00       	push   $0x200
40bcf0:	ff b6 1c 02 00 00    	push   0x21c(%esi)
40bcf6:	53                   	push   %ebx
40bcf7:	e8 fa cc ff ff       	call   0x4089f6
40bcfc:	83 c4 24             	add    $0x24,%esp
40bcff:	8b cb                	mov    %ebx,%ecx
40bd01:	0f b7 84 4d fc fa ff 	movzwl -0x504(%ebp,%ecx,2),%eax
40bd08:	ff
40bd09:	a8 01                	test   $0x1,%al
40bd0b:	74 0e                	je     0x40bd1b
40bd0d:	80 4c 0e 19 10       	orb    $0x10,0x19(%esi,%ecx,1)
40bd12:	8a 84 0d fc fd ff ff 	mov    -0x204(%ebp,%ecx,1),%al
40bd19:	eb 10                	jmp    0x40bd2b
40bd1b:	a8 02                	test   $0x2,%al
40bd1d:	74 15                	je     0x40bd34
40bd1f:	80 4c 0e 19 20       	orb    $0x20,0x19(%esi,%ecx,1)
40bd24:	8a 84 0d fc fc ff ff 	mov    -0x304(%ebp,%ecx,1),%al