407e20:	e9 8d 02 00 00       	jmp    0x4080b2
407e25:	ff 34 bb             	push   (%ebx,%edi,4)
407e28:	68 4b 01 00 00       	push   $0x14b
407e2d:	e8 21 68 00 00       	call   0x40e653
407e32:	e9 79 02 00 00       	jmp    0x4080b0
407e37:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407e3a:	ba 90 0d 42 00       	mov    $0x420d90,%edx
407e3f:	e8 95 fc ff ff       	call   0x407ad9
407e44:	85 c0                	test   %eax,%eax
407e46:	74 12                	je     0x407e5a
407e48:	8b 55 08             	mov    0x8(%ebp),%edx
407e4b:	8b ce                	mov    %esi,%ecx
407e4d:	e8 1f fe ff ff       	call   0x407c71
407e52:	8b 45 24             	mov    0x24(%ebp),%eax
407e55:	e9 25 ff ff ff       	jmp    0x407d7f
407e5a:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407e5d:	ba 10 0d 42 00       	mov    $0x420d10,%edx
407e62:	e8 72 fc ff ff       	call   0x407ad9
407e67:	85 c0                	test   %eax,%eax
407e69:	74 5c                	je     0x407ec7
407e6b:	8b 55 08             	mov    0x8(%ebp),%edx
407e6e:	8b ce                	mov    %esi,%ecx
407e70:	e8 fc fd ff ff       	call   0x407c71
407e75:	8b 45 24             	mov    0x24(%ebp),%eax
407e78:	83 38 00             	cmpl   $0x0,(%eax)
407e7b:	75 a8                	jne    0x407e25
407e7d:	8b 75 1c             	mov    0x1c(%ebp),%esi
407e80:	8b ce                	mov    %esi,%ecx
407e82:	6a ff                	push   $0xffffffff
407e84:	6a 00                	push   $0x0
407e86:	ff 15 f4 33 42 00    	call   *0x4233f4
407e8c:	6a 01                	push   $0x1
407e8e:	6a 2a                	push   $0x2a
407e90:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407e93:	ff 15 00 34 42 00    	call   *0x423400
407e99:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407e9d:	8d 45 e8             	lea    -0x18(%ebp),%eax
407ea0:	50                   	push   %eax
407ea1:	ff 76 08             	push   0x8(%esi)
407ea4:	8b ce                	mov    %esi,%ecx
407ea6:	ff 15 fc 33 42 00    	call   *0x4233fc
407eac:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407eb0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407eb3:	ff 15 44 32 42 00    	call   *0x423244
407eb9:	8b 45 20             	mov    0x20(%ebp),%eax
407ebc:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
407ec2:	e9 eb 01 00 00       	jmp    0x4080b2
407ec7:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407eca:	ba 90 0c 42 00       	mov    $0x420c90,%edx
407ecf:	e8 05 fc ff ff       	call   0x407ad9
407ed4:	85 c0                	test   %eax,%eax
407ed6:	74 26                	je     0x407efe
407ed8:	8b 55 08             	mov    0x8(%ebp),%edx
407edb:	8b ce                	mov    %esi,%ecx
407edd:	e8 8f fd ff ff       	call   0x407c71
407ee2:	8b 45 24             	mov    0x24(%ebp),%eax
407ee5:	83 38 00             	cmpl   $0x0,(%eax)
407ee8:	75 70                	jne    0x407f5a
407eea:	6a ff                	push   $0xffffffff
407eec:	6a 00                	push   $0x0
407eee:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
407ef1:	ff 15 f4 33 42 00    	call   *0x4233f4
407ef7:	6a 02                	push   $0x2
407ef9:	e9 80 01 00 00       	jmp    0x40807e
407efe:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407f01:	ba 10 0c 42 00       	mov    $0x420c10,%edx
407f06:	e8 ce fb ff ff       	call   0x407ad9
407f0b:	85 c0                	test   %eax,%eax
407f0d:	74 1d                	je     0x407f2c
407f0f:	8b 55 08             	mov    0x8(%ebp),%edx
407f12:	8b ce                	mov    %esi,%ecx
407f14:	e8 58 fd ff ff       	call   0x407c71
407f19:	8b 45 24             	mov    0x24(%ebp),%eax
407f1c:	83 38 00             	cmpl   $0x0,(%eax)
407f1f:	74 39                	je     0x407f5a
407f21:	8b 45 28             	mov    0x28(%ebp),%eax
407f24:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
407f2a:	eb be                	jmp    0x407eea
407f2c:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407f2f:	ba 90 0b 42 00       	mov    $0x420b90,%edx
407f34:	e8 a0 fb ff ff       	call   0x407ad9
407f39:	85 c0                	test   %eax,%eax
407f3b:	74 25                	je     0x407f62
407f3d:	8b 55 08             	mov    0x8(%ebp),%edx
407f40:	8b ce                	mov    %esi,%ecx
407f42:	e8 2a fd ff ff       	call   0x407c71
407f47:	8b 45 24             	mov    0x24(%ebp),%eax
407f4a:	33 c9                	xor    %ecx,%ecx
407f4c:	39 08                	cmp    %ecx,(%eax)
407f4e:	74 0a                	je     0x407f5a
407f50:	8b 45 28             	mov    0x28(%ebp),%eax
407f53:	6a ff                	push   $0xffffffff
407f55:	51                   	push   %ecx
407f56:	89 08                	mov    %ecx,(%eax)
407f58:	eb 94                	jmp    0x407eee
407f5a:	ff 34 bb             	push   (%ebx,%edi,4)
407f5d:	e9 55 01 00 00       	jmp    0x4080b7
407f62:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407f65:	ba 10 0b 42 00       	mov    $0x420b10,%edx
407f6a:	e8 6a fb ff ff       	call   0x407ad9
407f6f:	85 c0                	test   %eax,%eax
407f71:	74 14                	je     0x407f87
407f73:	8b 55 08             	mov    0x8(%ebp),%edx
407f76:	8b ce                	mov    %esi,%ecx
407f78:	e8 f4 fc ff ff       	call   0x407c71
407f7d:	8b 45 2c             	mov    0x2c(%ebp),%eax
407f80:	6a 04                	push   $0x4
407f82:	e9 54 01 00 00       	jmp    0x4080db
407f87:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407f8a:	ba 90 0a 42 00       	mov    $0x420a90,%edx
407f8f:	e8 45 fb ff ff       	call   0x407ad9
407f94:	85 c0                	test   %eax,%eax
407f96:	74 1a                	je     0x407fb2
407f98:	8b 55 08             	mov    0x8(%ebp),%edx
407f9b:	8b ce                	mov    %esi,%ecx
407f9d:	e8 cf fc ff ff       	call   0x407c71
407fa2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407fa5:	8d 45 f0             	lea    -0x10(%ebp),%eax
407fa8:	50                   	push   %eax
407fa9:	8b d3                	mov    %ebx,%edx
407fab:	e8 64 11 00 00       	call   0x409114
407fb0:	eb 29                	jmp    0x407fdb
407fb2:	8b 0c bb             	mov    (%ebx,%edi,4),%ecx
407fb5:	ba 10 0a 42 00       	mov    $0x420a10,%edx
407fba:	e8 1a fb ff ff       	call   0x407ad9
407fbf:	85 c0                	test   %eax,%eax
407fc1:	74 22                	je     0x407fe5
407fc3:	8b 55 08             	mov    0x8(%ebp),%edx
407fc6:	8b ce                	mov    %esi,%ecx
407fc8:	e8 a4 fc ff ff       	call   0x407c71
407fcd:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407fd0:	8d 45 f0             	lea    -0x10(%ebp),%eax
407fd3:	50                   	push   %eax
407fd4:	8b d3                	mov    %ebx,%edx
407fd6:	e8 e5 0f 00 00       	call   0x408fc0
407fdb:	8b 7d f0             	mov    -0x10(%ebp),%edi
407fde:	33 f6                	xor    %esi,%esi
407fe0:	e9 fd 00 00 00       	jmp    0x4080e2
407fe5:	83 fe 02             	cmp    $0x2,%esi
407fe8:	0f 84 d7 00 00 00    	je     0x4080c5
407fee:	83 fe 03             	cmp    $0x3,%esi
407ff1:	0f 84 ce 00 00 00    	je     0x4080c5
407ff7:	8b 04 bb             	mov    (%ebx,%edi,4),%eax
407ffa:	83 fe 01             	cmp    $0x1,%esi
407ffd:	75 14                	jne    0x408013
407fff:	8b 55 0c             	mov    0xc(%ebp),%edx
408002:	8b c8                	mov    %eax,%ecx
408004:	e8 f7 0a 00 00       	call   0x408b00
408009:	8b 4d 10             	mov    0x10(%ebp),%ecx
40800c:	89 01                	mov    %eax,(%ecx)
40800e:	e9 9f 00 00 00       	jmp    0x4080b2
408013:	83 fe 04             	cmp    $0x4,%esi
408016:	75 1e                	jne    0x408036
408018:	8b 75 30             	mov    0x30(%ebp),%esi
40801b:	8b c8                	mov    %eax,%ecx
40801d:	8b d6                	mov    %esi,%edx
40801f:	e8 dc 0a 00 00       	call   0x408b00
408024:	85 c0                	test   %eax,%eax
408026:	74 78                	je     0x4080a0
408028:	8b 06                	mov    (%esi),%eax
40802a:	48                   	dec    %eax
40802b:	3d 0f 27 00 00       	cmp    $0x270f,%eax
408030:	77 6e                	ja     0x4080a0
408032:	6a 05                	push   $0x5
408034:	eb 48                	jmp    0x40807e
408036:	83 fe 05             	cmp    $0x5,%esi
408039:	75 20                	jne    0x40805b
40803b:	8b 4d 34             	mov    0x34(%ebp),%ecx
40803e:	50                   	push   %eax
40803f:	ff 15 08 34 42 00    	call   *0x423408
408045:	8b 4d 34             	mov    0x34(%ebp),%ecx
408048:	ff 15 10 34 42 00    	call   *0x423410
40804e:	8b 4d 34             	mov    0x34(%ebp),%ecx
408051:	ff 15 0c 34 42 00    	call   *0x42340c
408057:	6a 06                	push   $0x6
408059:	eb 23                	jmp    0x40807e
40805b:	83 fe 06             	cmp    $0x6,%esi
40805e:	75 21                	jne    0x408081
408060:	8b 4d 38             	mov    0x38(%ebp),%ecx
408063:	50                   	push   %eax
408064:	ff 15 08 34 42 00    	call   *0x423408
40806a:	8b 4d 38             	mov    0x38(%ebp),%ecx
40806d:	ff 15 10 34 42 00    	call   *0x423410
408073:	8b 4d 38             	mov    0x38(%ebp),%ecx
408076:	ff 15 0c 34 42 00    	call   *0x42340c
40807c:	6a 07                	push   $0x7
40807e:	5e                   	pop    %esi
40807f:	eb 61                	jmp    0x4080e2
408081:	83 fe 07             	cmp    $0x7,%esi
408084:	75 30                	jne    0x4080b6
408086:	8b 75 3c             	mov    0x3c(%ebp),%esi
408089:	8b c8                	mov    %eax,%ecx
40808b:	8b d6                	mov    %esi,%edx
40808d:	e8 6e 0a 00 00       	call   0x408b00
408092:	85 c0                	test   %eax,%eax
408094:	74 0a                	je     0x4080a0
408096:	83 3e 01             	cmpl   $0x1,(%esi)
408099:	72 05                	jb     0x4080a0
40809b:	83 3e 3c             	cmpl   $0x3c,(%esi)
40809e:	76 12                	jbe    0x4080b2
4080a0:	ff 34 bb             	push   (%ebx,%edi,4)
4080a3:	68 4b 01 00 00       	push   $0x14b
4080a8:	e8 a6 65 00 00       	call   0x40e653
4080ad:	83 26 00             	andl   $0x0,(%esi)
4080b0:	59                   	pop    %ecx
4080b1:	59                   	pop    %ecx
4080b2:	33 f6                	xor    %esi,%esi
4080b4:	eb 2c                	jmp    0x4080e2
4080b6:	50                   	push   %eax
4080b7:	68 4b 01 00 00       	push   $0x14b
4080bc:	e8 92 65 00 00       	call   0x40e653
4080c1:	59                   	pop    %ecx
4080c2:	59                   	pop    %ecx
4080c3:	eb 1d                	jmp    0x4080e2
4080c5:	8b 45 1c             	mov    0x1c(%ebp),%eax
4080c8:	8b c8                	mov    %eax,%ecx
4080ca:	ff 34 bb             	push   (%ebx,%edi,4)
4080cd:	ff 70 08             	push   0x8(%eax)
4080d0:	ff 15 04 34 42 00    	call   *0x423404
4080d6:	8b 45 20             	mov    0x20(%ebp),%eax
4080d9:	6a 03                	push   $0x3
4080db:	5e                   	pop    %esi
4080dc:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4080e2:	47                   	inc    %edi
4080e3:	89 7d f0             	mov    %edi,-0x10(%ebp)
4080e6:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4080e9:	3b 7d ec             	cmp    -0x14(%ebp),%edi
4080ec:	0f 8c 2e fc ff ff    	jl     0x407d20
4080f2:	8b 55 08             	mov    0x8(%ebp),%edx
4080f5:	8b ce                	mov    %esi,%ecx
4080f7:	e8 75 fb ff ff       	call   0x407c71
4080fc:	8b 45 20             	mov    0x20(%ebp),%eax
4080ff:	83 38 00             	cmpl   $0x0,(%eax)
408102:	74 08                	je     0x40810c
408104:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
408107:	e8 3b a1 00 00       	call   0x412247
40810c:	e8 f5 42 01 00       	call   0x41c406
408111:	c2 38 00             	ret    $0x38
408114:	6a 08                	push   $0x8
408116:	b8 c6 c9 41 00       	mov    $0x41c9c6,%eax
40811b:	e8 18 43 01 00       	call   0x41c438
408120:	8b f9                	mov    %ecx,%edi
408122:	33 db                	xor    %ebx,%ebx
408124:	33 f6                	xor    %esi,%esi
408126:	43                   	inc    %ebx
408127:	85 ff                	test   %edi,%edi
408129:	0f 85 85 00 00 00    	jne    0x4081b4
40812f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408132:	ff 15 40 32 42 00    	call   *0x423240
408138:	89 75 fc             	mov    %esi,-0x4(%ebp)
40813b:	8d 55 f0             	lea    -0x10(%ebp),%edx
40813e:	b9 bc 02 00 00       	mov    $0x2bc,%ecx
408143:	e8 f9 66 00 00       	call   0x40e841
408148:	ff 75 f0             	push   -0x10(%ebp)
40814b:	53                   	push   %ebx
40814c:	56                   	push   %esi
40814d:	68 79 01 00 00       	push   $0x179
408152:	6a 04                	push   $0x4
408154:	e8 91 65 00 00       	call   0x40e6ea
408159:	83 c4 14             	add    $0x14,%esp
40815c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408160:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408163:	ff 15 44 32 42 00    	call   *0x423244
408169:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40816c:	ff 15 40 32 42 00    	call   *0x423240
408172:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
408179:	8d 55 f0             	lea    -0x10(%ebp),%edx
40817c:	b9 bd 02 00 00       	mov    $0x2bd,%ecx
408181:	e8 bb 66 00 00       	call   0x40e841
408186:	6a 02                	push   $0x2
408188:	58                   	pop    %eax
408189:	8b ce                	mov    %esi,%ecx
40818b:	d1 e8                	shr    $1,%eax
40818d:	41                   	inc    %ecx
40818e:	84 c3                	test   %al,%bl
408190:	74 f9                	je     0x40818b
408192:	ff 75 f0             	push   -0x10(%ebp)
408195:	6a 02                	push   $0x2
408197:	51                   	push   %ecx
408198:	68 79 01 00 00       	push   $0x179
40819d:	6a 04                	push   $0x4
40819f:	e8 46 65 00 00       	call   0x40e6ea
4081a4:	83 c4 14             	add    $0x14,%esp
4081a7:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4081ab:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4081ae:	ff 15 44 32 42 00    	call   *0x423244
4081b4:	3b fb                	cmp    %ebx,%edi
4081b6:	75 4b                	jne    0x408203
4081b8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4081bb:	ff 15 40 32 42 00    	call   *0x423240
4081c1:	c7 45 fc 06 00 00 00 	movl   $0x6,-0x4(%ebp)
4081c8:	8d 55 f0             	lea    -0x10(%ebp),%edx
4081cb:	b9 be 02 00 00       	mov    $0x2be,%ecx
4081d0:	e8 6c 66 00 00       	call   0x40e841
4081d5:	6a 04                	push   $0x4
4081d7:	58                   	pop    %eax
4081d8:	8b ce                	mov    %esi,%ecx
4081da:	d1 e8                	shr    $1,%eax
4081dc:	41                   	inc    %ecx
4081dd:	84 c3                	test   %al,%bl
4081df:	74 f9                	je     0x4081da
4081e1:	ff 75 f0             	push   -0x10(%ebp)
4081e4:	6a 04                	push   $0x4
4081e6:	51                   	push   %ecx
4081e7:	68 79 01 00 00       	push   $0x179
4081ec:	6a 04                	push   $0x4
4081ee:	e8 f7 64 00 00       	call   0x40e6ea
4081f3:	83 c4 14             	add    $0x14,%esp
4081f6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4081fa:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4081fd:	ff 15 44 32 42 00    	call   *0x423244
408203:	85 ff                	test   %edi,%edi
408205:	0f 85 7d 01 00 00    	jne    0x408388
40820b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40820e:	ff 15 40 32 42 00    	call   *0x423240
408214:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
40821b:	8d 55 f0             	lea    -0x10(%ebp),%edx
40821e:	b9 bf 02 00 00       	mov    $0x2bf,%ecx
408223:	e8 19 66 00 00       	call   0x40e841
408228:	6a 08                	push   $0x8
40822a:	58                   	pop    %eax
40822b:	8b ce                	mov    %esi,%ecx
40822d:	d1 e8                	shr    $1,%eax
40822f:	41                   	inc    %ecx
408230:	84 c3                	test   %al,%bl
408232:	74 f9                	je     0x40822d
408234:	ff 75 f0             	push   -0x10(%ebp)
408237:	6a 08                	push   $0x8
408239:	51                   	push   %ecx
40823a:	68 79 01 00 00       	push   $0x179
40823f:	6a 04                	push   $0x4
408241:	e8 a4 64 00 00       	call   0x40e6ea
408246:	83 c4 14             	add    $0x14,%esp
408249:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40824d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408250:	ff 15 44 32 42 00    	call   *0x423244
408256:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408259:	ff 15 40 32 42 00    	call   *0x423240
40825f:	c7 45 fc 0c 00 00 00 	movl   $0xc,-0x4(%ebp)
408266:	8d 55 f0             	lea    -0x10(%ebp),%edx
408269:	b9 c0 02 00 00       	mov    $0x2c0,%ecx
40826e:	e8 ce 65 00 00       	call   0x40e841
408273:	6a 10                	push   $0x10
408275:	58                   	pop    %eax
408276:	8b ce                	mov    %esi,%ecx
408278:	d1 e8                	shr    $1,%eax
40827a:	41                   	inc    %ecx
40827b:	84 c3                	test   %al,%bl
40827d:	74 f9                	je     0x408278
40827f:	ff 75 f0             	push   -0x10(%ebp)