40ae87:	33 d2                	xor    %edx,%edx
40ae89:	84 c0                	test   %al,%al
40ae8b:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ae8e:	75 0c                	jne    0x40ae9c
40ae90:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
40ae97:	e9 d0 00 00 00       	jmp    0x40af6c
40ae9c:	8b 06                	mov    (%esi),%eax
40ae9e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40aea2:	8b 40 04             	mov    0x4(%eax),%eax
40aea5:	8b 44 30 0c          	mov    0xc(%eax,%esi,1),%eax
40aea9:	25 c0 01 00 00       	and    $0x1c0,%eax
40aeae:	83 f8 40             	cmp    $0x40,%eax
40aeb1:	74 2b                	je     0x40aede
40aeb3:	85 db                	test   %ebx,%ebx
40aeb5:	76 27                	jbe    0x40aede
40aeb7:	8b 06                	mov    (%esi),%eax
40aeb9:	8b 40 04             	mov    0x4(%eax),%eax
40aebc:	03 c6                	add    %esi,%eax
40aebe:	8a 48 30             	mov    0x30(%eax),%cl
40aec1:	51                   	push   %ecx
40aec2:	8b 48 28             	mov    0x28(%eax),%ecx
40aec5:	e8 f4 fd ff ff       	call   0x40acbe
40aeca:	33 c9                	xor    %ecx,%ecx
40aecc:	83 f8 ff             	cmp    $0xffffffff,%eax
40aecf:	0f 94 c1             	sete   %cl
40aed2:	84 c9                	test   %cl,%cl
40aed4:	0f 84 cf 00 00 00    	je     0x40afa9
40aeda:	83 4d ec 04          	orl    $0x4,-0x14(%ebp)
40aede:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40aee2:	75 74                	jne    0x40af58
40aee4:	8b 06                	mov    (%esi),%eax
40aee6:	57                   	push   %edi
40aee7:	ff 75 0c             	push   0xc(%ebp)
40aeea:	8b 40 04             	mov    0x4(%eax),%eax
40aeed:	8b 4c 30 28          	mov    0x28(%eax,%esi,1),%ecx
40aef1:	8b 01                	mov    (%ecx),%eax
40aef3:	ff 50 1c             	call   *0x1c(%eax)
40aef6:	3b c7                	cmp    %edi,%eax
40aef8:	74 07                	je     0x40af01
40aefa:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
40af01:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40af05:	75 51                	jne    0x40af58
40af07:	85 db                	test   %ebx,%ebx
40af09:	76 4d                	jbe    0x40af58
40af0b:	8b 06                	mov    (%esi),%eax
40af0d:	8b 40 04             	mov    0x4(%eax),%eax
40af10:	03 c6                	add    %esi,%eax
40af12:	8a 48 30             	mov    0x30(%eax),%cl
40af15:	51                   	push   %ecx
40af16:	8b 48 28             	mov    0x28(%eax),%ecx
40af19:	e8 a0 fd ff ff       	call   0x40acbe
40af1e:	33 c9                	xor    %ecx,%ecx
40af20:	83 f8 ff             	cmp    $0xffffffff,%eax
40af23:	0f 94 c1             	sete   %cl
40af26:	84 c9                	test   %cl,%cl
40af28:	74 06                	je     0x40af30
40af2a:	83 4d ec 04          	orl    $0x4,-0x14(%ebp)
40af2e:	eb 28                	jmp    0x40af58
40af30:	4b                   	dec    %ebx
40af31:	eb d4                	jmp    0x40af07
40af33:	8b 45 08             	mov    0x8(%ebp),%eax
40af36:	8b 08                	mov    (%eax),%ecx
40af38:	8b 49 04             	mov    0x4(%ecx),%ecx
40af3b:	03 c8                	add    %eax,%ecx
40af3d:	8b 41 04             	mov    0x4(%ecx),%eax
40af40:	0c 04                	or     $0x4,%al
40af42:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
40af46:	75 02                	jne    0x40af4a
40af48:	0c 04                	or     $0x4,%al
40af4a:	6a 01                	push   $0x1
40af4c:	50                   	push   %eax
40af4d:	e8 6e bc 00 00       	call   0x416bc0
40af52:	b8 64 af 40 00       	mov    $0x40af64,%eax
40af57:	c3                   	ret
40af58:	8b 06                	mov    (%esi),%eax
40af5a:	8b 40 04             	mov    0x4(%eax),%eax
40af5d:	83 64 30 14 00       	andl   $0x0,0x14(%eax,%esi,1)
40af62:	eb 03                	jmp    0x40af67
40af64:	8b 75 08             	mov    0x8(%ebp),%esi
40af67:	33 d2                	xor    %edx,%edx
40af69:	89 55 fc             	mov    %edx,-0x4(%ebp)
40af6c:	8b 06                	mov    (%esi),%eax
40af6e:	8b 48 04             	mov    0x4(%eax),%ecx
40af71:	03 ce                	add    %esi,%ecx
40af73:	39 55 ec             	cmp    %edx,-0x14(%ebp)
40af76:	74 14                	je     0x40af8c
40af78:	8b 41 04             	mov    0x4(%ecx),%eax
40af7b:	0b 45 ec             	or     -0x14(%ebp),%eax
40af7e:	39 51 28             	cmp    %edx,0x28(%ecx)
40af81:	75 02                	jne    0x40af85
40af83:	0c 04                	or     $0x4,%al
40af85:	52                   	push   %edx
40af86:	50                   	push   %eax
40af87:	e8 34 bc 00 00       	call   0x416bc0
40af8c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40af90:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40af93:	e8 7a fc ff ff       	call   0x40ac12
40af98:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40af9b:	8b c6                	mov    %esi,%eax
40af9d:	5f                   	pop    %edi
40af9e:	5e                   	pop    %esi
40af9f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40afa6:	5b                   	pop    %ebx
40afa7:	c9                   	leave
40afa8:	c3                   	ret
40afa9:	4b                   	dec    %ebx
40afaa:	e9 04 ff ff ff       	jmp    0x40aeb3
40afaf:	53                   	push   %ebx
40afb0:	b3 01                	mov    $0x1,%bl
40afb2:	84 1d 5d 79 43 00    	test   %bl,0x43795d
40afb8:	75 06                	jne    0x40afc0
40afba:	08 1d 5d 79 43 00    	or     %bl,0x43795d
40afc0:	e8 74 00 00 00       	call   0x40b039
40afc5:	84 1d 5e 79 43 00    	test   %bl,0x43795e
40afcb:	75 06                	jne    0x40afd3
40afcd:	08 1d 5e 79 43 00    	or     %bl,0x43795e
40afd3:	e8 61 00 00 00       	call   0x40b039
40afd8:	84 1d 5f 79 43 00    	test   %bl,0x43795f
40afde:	75 06                	jne    0x40afe6
40afe0:	08 1d 5f 79 43 00    	or     %bl,0x43795f
40afe6:	e8 4e 00 00 00       	call   0x40b039
40afeb:	84 1d 60 79 43 00    	test   %bl,0x437960
40aff1:	75 06                	jne    0x40aff9
40aff3:	08 1d 60 79 43 00    	or     %bl,0x437960
40aff9:	e8 3b 00 00 00       	call   0x40b039
40affe:	84 1d 61 79 43 00    	test   %bl,0x437961
40b004:	75 06                	jne    0x40b00c
40b006:	08 1d 61 79 43 00    	or     %bl,0x437961
40b00c:	e8 28 00 00 00       	call   0x40b039
40b011:	84 1d 62 79 43 00    	test   %bl,0x437962
40b017:	75 06                	jne    0x40b01f
40b019:	08 1d 62 79 43 00    	or     %bl,0x437962
40b01f:	e8 15 00 00 00       	call   0x40b039
40b024:	84 1d 63 79 43 00    	test   %bl,0x437963
40b02a:	75 06                	jne    0x40b032
40b02c:	08 1d 63 79 43 00    	or     %bl,0x437963
40b032:	e8 02 00 00 00       	call   0x40b039
40b037:	5b                   	pop    %ebx
40b038:	c3                   	ret
40b039:	68 45 b0 40 00       	push   $0x40b045
40b03e:	e8 9d 0c 00 00       	call   0x40bce0
40b043:	59                   	pop    %ecx
40b044:	c3                   	ret
40b045:	c3                   	ret
40b046:	b8 90 98 42 00       	mov    $0x429890,%eax
40b04b:	c3                   	ret
40b04c:	b8 a8 98 42 00       	mov    $0x4298a8,%eax
40b051:	c3                   	ret
40b052:	56                   	push   %esi
40b053:	8b f1                	mov    %ecx,%esi
40b055:	e8 81 5f 01 00       	call   0x420fdb
40b05a:	c7 06 f8 98 42 00    	movl   $0x4298f8,(%esi)
40b060:	8b c6                	mov    %esi,%eax
40b062:	5e                   	pop    %esi
40b063:	c3                   	ret
40b064:	56                   	push   %esi
40b065:	8b f1                	mov    %ecx,%esi
40b067:	e8 14 00 00 00       	call   0x40b080
40b06c:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40b071:	74 07                	je     0x40b07a
40b073:	56                   	push   %esi
40b074:	e8 c4 1c 01 00       	call   0x41cd3d
40b079:	59                   	pop    %ecx
40b07a:	8b c6                	mov    %esi,%eax
40b07c:	5e                   	pop    %esi
40b07d:	c2 04 00             	ret    $0x4
40b080:	c7 01 f8 98 42 00    	movl   $0x4298f8,(%ecx)
40b086:	e9 08 70 01 00       	jmp    0x422093
40b08b:	b8 ad 77 42 00       	mov    $0x4277ad,%eax
40b090:	e8 9b 0b 00 00       	call   0x40bc30
40b095:	51                   	push   %ecx
40b096:	56                   	push   %esi
40b097:	8b f1                	mov    %ecx,%esi
40b099:	68 c4 00 00 00       	push   $0xc4
40b09e:	e8 5e 1c 01 00       	call   0x41cd01
40b0a3:	59                   	pop    %ecx
40b0a4:	8b c8                	mov    %eax,%ecx
40b0a6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40b0a9:	33 c0                	xor    %eax,%eax
40b0ab:	3b c8                	cmp    %eax,%ecx
40b0ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b0b0:	74 05                	je     0x40b0b7
40b0b2:	e8 0d 60 ff ff       	call   0x4010c4
40b0b7:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40b0bb:	56                   	push   %esi
40b0bc:	68 a0 6a 43 00       	push   $0x436aa0
40b0c1:	68 00 00 cf 50       	push   $0x50cf0000
40b0c6:	68 5c 12 43 00       	push   $0x43125c
40b0cb:	8b c8                	mov    %eax,%ecx
40b0cd:	e8 25 60 ff ff       	call   0x4010f7
40b0d2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b0d5:	5e                   	pop    %esi
40b0d6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b0dd:	c9                   	leave
40b0de:	c3                   	ret
40b0df:	b8 c1 77 42 00       	mov    $0x4277c1,%eax
40b0e4:	e8 47 0b 00 00       	call   0x40bc30
40b0e9:	51                   	push   %ecx
40b0ea:	56                   	push   %esi
40b0eb:	8b f1                	mov    %ecx,%esi
40b0ed:	68 cc 00 00 00       	push   $0xcc
40b0f2:	e8 0a 1c 01 00       	call   0x41cd01
40b0f7:	59                   	pop    %ecx
40b0f8:	8b c8                	mov    %eax,%ecx
40b0fa:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40b0fd:	33 c0                	xor    %eax,%eax
40b0ff:	3b c8                	cmp    %eax,%ecx
40b101:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b104:	74 05                	je     0x40b10b
40b106:	e8 e8 69 ff ff       	call   0x401af3
40b10b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40b10f:	56                   	push   %esi
40b110:	68 a0 6a 43 00       	push   $0x436aa0
40b115:	68 00 00 cf 50       	push   $0x50cf0000
40b11a:	68 64 12 43 00       	push   $0x431264
40b11f:	8b c8                	mov    %eax,%ecx
40b121:	e8 63 69 ff ff       	call   0x401a89
40b126:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b129:	5e                   	pop    %esi
40b12a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b131:	c9                   	leave
40b132:	c3                   	ret
40b133:	56                   	push   %esi
40b134:	8b f1                	mov    %ecx,%esi
40b136:	6a 00                	push   $0x0
40b138:	68 4f b1 40 00       	push   $0x40b14f
40b13d:	ff 76 1c             	push   0x1c(%esi)
40b140:	ff 15 38 99 43 00    	call   *0x439938
40b146:	8b ce                	mov    %esi,%ecx
40b148:	e8 17 fa 00 00       	call   0x41ab64
40b14d:	5e                   	pop    %esi
40b14e:	c3                   	ret
40b14f:	56                   	push   %esi
40b150:	ff 74 24 08          	push   0x8(%esp)
40b154:	e8 8f f1 00 00       	call   0x41a2e8
40b159:	8b f0                	mov    %eax,%esi
40b15b:	85 f6                	test   %esi,%esi
40b15d:	74 37                	je     0x40b196
40b15f:	6a 00                	push   $0x0
40b161:	6a 00                	push   $0x0
40b163:	68 01 14 00 00       	push   $0x1401
40b168:	ff 76 1c             	push   0x1c(%esi)
40b16b:	ff 15 88 99 43 00    	call   *0x439988
40b171:	6a 05                	push   $0x5
40b173:	ff 76 1c             	push   0x1c(%esi)
40b176:	ff 15 34 99 43 00    	call   *0x439934
40b17c:	50                   	push   %eax
40b17d:	e8 3e f1 00 00       	call   0x41a2c0
40b182:	85 c0                	test   %eax,%eax
40b184:	74 10                	je     0x40b196
40b186:	6a 00                	push   $0x0
40b188:	68 4f b1 40 00       	push   $0x40b14f
40b18d:	ff 76 1c             	push   0x1c(%esi)
40b190:	ff 15 38 99 43 00    	call   *0x439938
40b196:	6a 01                	push   $0x1
40b198:	58                   	pop    %eax
40b199:	5e                   	pop    %esi
40b19a:	c2 08 00             	ret    $0x8
40b19d:	b8 01 78 42 00       	mov    $0x427801,%eax
40b1a2:	e8 89 0a 00 00       	call   0x40bc30
40b1a7:	51                   	push   %ecx
40b1a8:	6a 10                	push   $0x10
40b1aa:	e8 2b 9b 01 00       	call   0x424cda
40b1af:	8b c8                	mov    %eax,%ecx
40b1b1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40b1b4:	33 c0                	xor    %eax,%eax
40b1b6:	3b c8                	cmp    %eax,%ecx
40b1b8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b1bb:	74 05                	je     0x40b1c2
40b1bd:	e8 03 97 01 00       	call   0x4248c5
40b1c2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b1c5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b1cc:	c9                   	leave
40b1cd:	c3                   	ret
40b1ce:	b8 15 78 42 00       	mov    $0x427815,%eax
40b1d3:	e8 58 0a 00 00       	call   0x40bc30
40b1d8:	51                   	push   %ecx
40b1d9:	68 18 01 00 00       	push   $0x118
40b1de:	e8 f7 9a 01 00       	call   0x424cda
40b1e3:	8b c8                	mov    %eax,%ecx
40b1e5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40b1e8:	33 c0                	xor    %eax,%eax
40b1ea:	3b c8                	cmp    %eax,%ecx
40b1ec:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b1ef:	74 05                	je     0x40b1f6
40b1f1:	e8 52 91 01 00       	call   0x424348
40b1f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b1f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b200:	c9                   	leave
40b201:	c3                   	ret
40b202:	e8 b5 2d 01 00       	call   0x41dfbc
40b207:	85 c0                	test   %eax,%eax
40b209:	74 0d                	je     0x40b218
40b20b:	e8 ac 2d 01 00       	call   0x41dfbc
40b210:	8b 10                	mov    (%eax),%edx
40b212:	8b c8                	mov    %eax,%ecx
40b214:	ff 52 7c             	call   *0x7c(%edx)
40b217:	c3                   	ret
40b218:	33 c0                	xor    %eax,%eax
40b21a:	c3                   	ret
40b21b:	8b 41 20             	mov    0x20(%ecx),%eax
40b21e:	85 c0                	test   %eax,%eax
40b220:	75 09                	jne    0x40b22b
40b222:	ff 71 1c             	push   0x1c(%ecx)
40b225:	ff 15 a8 98 43 00    	call   *0x4398a8
40b22b:	50                   	push   %eax
40b22c:	e8 8f f0 00 00       	call   0x41a2c0
40b231:	c3                   	ret
40b232:	e8 10 95 01 00       	call   0x424747
40b237:	8b 48 04             	mov    0x4(%eax),%ecx
40b23a:	e9 97 29 01 00       	jmp    0x41dbd6
40b23f:	6a 30                	push   $0x30
40b241:	e8 94 9a 01 00       	call   0x424cda
40b246:	85 c0                	test   %eax,%eax
40b248:	74 07                	je     0x40b251
40b24a:	c7 00 5c 9e 42 00    	movl   $0x429e5c,(%eax)
40b250:	c3                   	ret
40b251:	33 c0                	xor    %eax,%eax
40b253:	c3                   	ret
40b254:	56                   	push   %esi
40b255:	8b f1                	mov    %ecx,%esi
40b257:	e8 a4 9f 01 00       	call   0x425200
40b25c:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40b261:	74 06                	je     0x40b269
40b263:	56                   	push   %esi
40b264:	e8 8f 9a 01 00       	call   0x424cf8
40b269:	8b c6                	mov    %esi,%eax
40b26b:	5e                   	pop    %esi
40b26c:	c2 04 00             	ret    $0x4
40b26f:	56                   	push   %esi
40b270:	8b f1                	mov    %ecx,%esi
40b272:	ff 76 1c             	push   0x1c(%esi)
40b275:	ff 15 a8 98 43 00    	call   *0x4398a8
40b27b:	50                   	push   %eax
40b27c:	e8 3f f0 00 00       	call   0x41a2c0
40b281:	6a 00                	push   $0x0
40b283:	ff 76 1c             	push   0x1c(%esi)
40b286:	68 21 02 00 00       	push   $0x221
40b28b:	ff 70 1c             	push   0x1c(%eax)
40b28e:	ff 15 88 99 43 00    	call   *0x439988
40b294:	5e                   	pop    %esi
40b295:	c3                   	ret
40b296:	56                   	push   %esi
40b297:	8b f1                	mov    %ecx,%esi
40b299:	ff 76 1c             	push   0x1c(%esi)
40b29c:	ff 15 a8 98 43 00    	call   *0x4398a8
40b2a2:	50                   	push   %eax
40b2a3:	e8 18 f0 00 00       	call   0x41a2c0
40b2a8:	6a 00                	push   $0x0
40b2aa:	ff 76 1c             	push   0x1c(%esi)