407ede:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
407ee2:	75 0c                	jne    0x407ef0
407ee4:	8b 55 ec             	mov    -0x14(%ebp),%edx
407ee7:	52                   	push   %edx
407ee8:	e8 c3 e9 ff ff       	call   0x4068b0
407eed:	83 c4 04             	add    $0x4,%esp
407ef0:	6a 20                	push   $0x20
407ef2:	6a 00                	push   $0x0
407ef4:	8b 45 fc             	mov    -0x4(%ebp),%eax
407ef7:	50                   	push   %eax
407ef8:	e8 83 ea ff ff       	call   0x406980
407efd:	83 c4 0c             	add    $0xc,%esp
407f00:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407f03:	51                   	push   %ecx
407f04:	e8 a7 e9 ff ff       	call   0x4068b0
407f09:	83 c4 04             	add    $0x4,%esp
407f0c:	8b 45 e8             	mov    -0x18(%ebp),%eax
407f0f:	8b e5                	mov    %ebp,%esp
407f11:	5d                   	pop    %ebp
407f12:	c3                   	ret
407f13:	cc                   	int3
407f14:	cc                   	int3
407f15:	cc                   	int3
407f16:	cc                   	int3
407f17:	cc                   	int3
407f18:	cc                   	int3
407f19:	cc                   	int3
407f1a:	cc                   	int3
407f1b:	cc                   	int3
407f1c:	cc                   	int3
407f1d:	cc                   	int3
407f1e:	cc                   	int3
407f1f:	cc                   	int3
407f20:	55                   	push   %ebp
407f21:	8b ec                	mov    %esp,%ebp
407f23:	83 ec 0c             	sub    $0xc,%esp
407f26:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
407f2d:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
407f31:	74 12                	je     0x407f45
407f33:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407f37:	74 0c                	je     0x407f45
407f39:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
407f3d:	74 06                	je     0x407f45
407f3f:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
407f43:	75 08                	jne    0x407f4d
407f45:	8b 45 f8             	mov    -0x8(%ebp),%eax
407f48:	e9 30 01 00 00       	jmp    0x40807d
407f4d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
407f54:	c7 45 f4 20 00 00 00 	movl   $0x20,-0xc(%ebp)
407f5b:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
407f5f:	75 07                	jne    0x407f68
407f61:	c7 45 f4 60 00 00 00 	movl   $0x60,-0xc(%ebp)
407f68:	6a 00                	push   $0x0
407f6a:	8d 45 fc             	lea    -0x4(%ebp),%eax
407f6d:	50                   	push   %eax
407f6e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407f71:	51                   	push   %ecx
407f72:	8b 55 0c             	mov    0xc(%ebp),%edx
407f75:	52                   	push   %edx
407f76:	8b 45 08             	mov    0x8(%ebp),%eax
407f79:	50                   	push   %eax
407f7a:	e8 41 a6 ff ff       	call   0x4025c0
407f7f:	8b 88 d4 00 00 00    	mov    0xd4(%eax),%ecx
407f85:	ff d1                	call   *%ecx
407f87:	85 c0                	test   %eax,%eax
407f89:	0f 84 eb 00 00 00    	je     0x40807a
407f8f:	6a 00                	push   $0x0
407f91:	8d 55 fc             	lea    -0x4(%ebp),%edx
407f94:	52                   	push   %edx
407f95:	6a 08                	push   $0x8
407f97:	8b 45 14             	mov    0x14(%ebp),%eax
407f9a:	50                   	push   %eax
407f9b:	8b 4d 08             	mov    0x8(%ebp),%ecx
407f9e:	51                   	push   %ecx
407f9f:	e8 1c a6 ff ff       	call   0x4025c0
407fa4:	8b 90 d4 00 00 00    	mov    0xd4(%eax),%edx
407faa:	ff d2                	call   *%edx
407fac:	85 c0                	test   %eax,%eax
407fae:	0f 84 c6 00 00 00    	je     0x40807a
407fb4:	6a 00                	push   $0x0
407fb6:	8d 45 fc             	lea    -0x4(%ebp),%eax
407fb9:	50                   	push   %eax
407fba:	6a 04                	push   $0x4
407fbc:	8d 4d 18             	lea    0x18(%ebp),%ecx
407fbf:	51                   	push   %ecx
407fc0:	8b 55 08             	mov    0x8(%ebp),%edx
407fc3:	52                   	push   %edx
407fc4:	e8 f7 a5 ff ff       	call   0x4025c0
407fc9:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
407fcf:	ff d0                	call   *%eax
407fd1:	85 c0                	test   %eax,%eax
407fd3:	0f 84 a1 00 00 00    	je     0x40807a
407fd9:	6a 00                	push   $0x0
407fdb:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407fde:	51                   	push   %ecx
407fdf:	6a 04                	push   $0x4
407fe1:	e8 1a d4 ff ff       	call   0x405400
407fe6:	83 c0 10             	add    $0x10,%eax
407fe9:	50                   	push   %eax
407fea:	8b 55 08             	mov    0x8(%ebp),%edx
407fed:	52                   	push   %edx
407fee:	e8 cd a5 ff ff       	call   0x4025c0
407ff3:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
407ff9:	ff d0                	call   *%eax
407ffb:	85 c0                	test   %eax,%eax
407ffd:	74 7b                	je     0x40807a
407fff:	6a 00                	push   $0x0
408001:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408004:	51                   	push   %ecx
408005:	e8 76 bb ff ff       	call   0x403b80
40800a:	8b 50 44             	mov    0x44(%eax),%edx
40800d:	52                   	push   %edx
40800e:	e8 6d bb ff ff       	call   0x403b80
408013:	8b 40 48             	mov    0x48(%eax),%eax
408016:	50                   	push   %eax
408017:	8b 4d 08             	mov    0x8(%ebp),%ecx
40801a:	51                   	push   %ecx
40801b:	e8 a0 a5 ff ff       	call   0x4025c0
408020:	8b 90 d4 00 00 00    	mov    0xd4(%eax),%edx
408026:	ff d2                	call   *%edx
408028:	85 c0                	test   %eax,%eax
40802a:	74 4e                	je     0x40807a
40802c:	6a 00                	push   $0x0
40802e:	8d 45 fc             	lea    -0x4(%ebp),%eax
408031:	50                   	push   %eax
408032:	6a 20                	push   $0x20
408034:	8b 4d 10             	mov    0x10(%ebp),%ecx
408037:	51                   	push   %ecx
408038:	8b 55 08             	mov    0x8(%ebp),%edx
40803b:	52                   	push   %edx
40803c:	e8 7f a5 ff ff       	call   0x4025c0
408041:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
408047:	ff d0                	call   *%eax
408049:	85 c0                	test   %eax,%eax
40804b:	74 2d                	je     0x40807a
40804d:	6a 00                	push   $0x0
40804f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408052:	51                   	push   %ecx
408053:	6a 04                	push   $0x4
408055:	e8 26 bb ff ff       	call   0x403b80
40805a:	83 c0 38             	add    $0x38,%eax
40805d:	50                   	push   %eax
40805e:	8b 55 08             	mov    0x8(%ebp),%edx
408061:	52                   	push   %edx
408062:	e8 59 a5 ff ff       	call   0x4025c0
408067:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
40806d:	ff d0                	call   *%eax
40806f:	85 c0                	test   %eax,%eax
408071:	74 07                	je     0x40807a
408073:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40807a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40807d:	8b e5                	mov    %ebp,%esp
40807f:	5d                   	pop    %ebp
408080:	c3                   	ret
408081:	cc                   	int3
408082:	cc                   	int3
408083:	cc                   	int3
408084:	cc                   	int3
408085:	cc                   	int3
408086:	cc                   	int3
408087:	cc                   	int3
408088:	cc                   	int3
408089:	cc                   	int3
40808a:	cc                   	int3
40808b:	cc                   	int3
40808c:	cc                   	int3
40808d:	cc                   	int3
40808e:	cc                   	int3
40808f:	cc                   	int3
408090:	55                   	push   %ebp
408091:	8b ec                	mov    %esp,%ebp
408093:	83 ec 74             	sub    $0x74,%esp
408096:	56                   	push   %esi
408097:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40809e:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4080a2:	74 06                	je     0x4080aa
4080a4:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4080a8:	75 08                	jne    0x4080b2
4080aa:	8b 45 e0             	mov    -0x20(%ebp),%eax
4080ad:	e9 27 03 00 00       	jmp    0x4083d9
4080b2:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
4080b9:	8a 45 08             	mov    0x8(%ebp),%al
4080bc:	88 45 ff             	mov    %al,-0x1(%ebp)
4080bf:	0f b6 4d ff          	movzbl -0x1(%ebp),%ecx
4080c3:	85 c9                	test   %ecx,%ecx
4080c5:	75 09                	jne    0x4080d0
4080c7:	8a 55 ff             	mov    -0x1(%ebp),%dl
4080ca:	80 c2 01             	add    $0x1,%dl
4080cd:	88 55 ff             	mov    %dl,-0x1(%ebp)
4080d0:	e8 2b d3 ff ff       	call   0x405400
4080d5:	8b 40 78             	mov    0x78(%eax),%eax
4080d8:	89 45 ec             	mov    %eax,-0x14(%ebp)
4080db:	e8 20 d3 ff ff       	call   0x405400
4080e0:	8b 48 74             	mov    0x74(%eax),%ecx
4080e3:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4080e6:	8b 55 ec             	mov    -0x14(%ebp),%edx
4080e9:	52                   	push   %edx
4080ea:	e8 91 e7 ff ff       	call   0x406880
4080ef:	83 c4 04             	add    $0x4,%esp
4080f2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4080f5:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4080f9:	0f 84 d3 02 00 00    	je     0x4083d2
4080ff:	0f 57 c0             	xorps  %xmm0,%xmm0
408102:	66 0f 13 45 c4       	movlpd %xmm0,-0x3c(%ebp)
408107:	8b 45 0c             	mov    0xc(%ebp),%eax
40810a:	89 45 dc             	mov    %eax,-0x24(%ebp)
40810d:	8b 4d dc             	mov    -0x24(%ebp),%ecx
408110:	8b 55 c4             	mov    -0x3c(%ebp),%edx
408113:	3b 11                	cmp    (%ecx),%edx
408115:	75 0f                	jne    0x408126
408117:	8b 45 dc             	mov    -0x24(%ebp),%eax
40811a:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40811d:	3b 48 04             	cmp    0x4(%eax),%ecx
408120:	0f 84 14 01 00 00    	je     0x40823a
408126:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40812d:	8b 45 ec             	mov    -0x14(%ebp),%eax
408130:	99                   	cltd
408131:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408134:	8b 31                	mov    (%ecx),%esi
408136:	2b 75 c4             	sub    -0x3c(%ebp),%esi
408139:	8b 49 04             	mov    0x4(%ecx),%ecx
40813c:	1b 4d c8             	sbb    -0x38(%ebp),%ecx
40813f:	89 45 ac             	mov    %eax,-0x54(%ebp)
408142:	89 55 b0             	mov    %edx,-0x50(%ebp)
408145:	89 75 a4             	mov    %esi,-0x5c(%ebp)
408148:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40814b:	8b 55 b0             	mov    -0x50(%ebp),%edx
40814e:	3b 55 a8             	cmp    -0x58(%ebp),%edx
408151:	77 16                	ja     0x408169
408153:	72 08                	jb     0x40815d
408155:	8b 45 ac             	mov    -0x54(%ebp),%eax
408158:	3b 45 a4             	cmp    -0x5c(%ebp),%eax
40815b:	73 0c                	jae    0x408169
40815d:	8b 45 ec             	mov    -0x14(%ebp),%eax
408160:	99                   	cltd
408161:	89 45 bc             	mov    %eax,-0x44(%ebp)
408164:	89 55 c0             	mov    %edx,-0x40(%ebp)
408167:	eb 14                	jmp    0x40817d
408169:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40816c:	8b 11                	mov    (%ecx),%edx
40816e:	2b 55 c4             	sub    -0x3c(%ebp),%edx
408171:	8b 41 04             	mov    0x4(%ecx),%eax
408174:	1b 45 c8             	sbb    -0x38(%ebp),%eax
408177:	89 55 bc             	mov    %edx,-0x44(%ebp)
40817a:	89 45 c0             	mov    %eax,-0x40(%ebp)
40817d:	8b 4d bc             	mov    -0x44(%ebp),%ecx
408180:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408183:	6a 00                	push   $0x0
408185:	8d 55 e8             	lea    -0x18(%ebp),%edx
408188:	52                   	push   %edx
408189:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40818c:	50                   	push   %eax
40818d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408190:	51                   	push   %ecx
408191:	8b 55 08             	mov    0x8(%ebp),%edx
408194:	52                   	push   %edx
408195:	e8 26 a4 ff ff       	call   0x4025c0
40819a:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
4081a0:	ff d0                	call   *%eax
4081a2:	85 c0                	test   %eax,%eax
4081a4:	0f 84 83 00 00 00    	je     0x40822d
4081aa:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4081ad:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4081b0:	8b 55 c8             	mov    -0x38(%ebp),%edx
4081b3:	89 55 a0             	mov    %edx,-0x60(%ebp)
4081b6:	6a 00                	push   $0x0
4081b8:	8d 45 8c             	lea    -0x74(%ebp),%eax
4081bb:	50                   	push   %eax
4081bc:	8b 4d a0             	mov    -0x60(%ebp),%ecx
4081bf:	51                   	push   %ecx
4081c0:	8b 55 9c             	mov    -0x64(%ebp),%edx
4081c3:	52                   	push   %edx
4081c4:	8b 45 08             	mov    0x8(%ebp),%eax
4081c7:	50                   	push   %eax
4081c8:	e8 f3 a3 ff ff       	call   0x4025c0
4081cd:	8b 88 e4 00 00 00    	mov    0xe4(%eax),%ecx
4081d3:	ff d1                	call   *%ecx
4081d5:	85 c0                	test   %eax,%eax
4081d7:	74 54                	je     0x40822d
4081d9:	8b 55 d0             	mov    -0x30(%ebp),%edx
4081dc:	52                   	push   %edx
4081dd:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4081e0:	50                   	push   %eax
4081e1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4081e4:	51                   	push   %ecx
4081e5:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
4081e9:	52                   	push   %edx
4081ea:	e8 b1 87 00 00       	call   0x4109a0
4081ef:	83 c4 10             	add    $0x10,%esp
4081f2:	6a 00                	push   $0x0
4081f4:	8d 45 e8             	lea    -0x18(%ebp),%eax
4081f7:	50                   	push   %eax
4081f8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4081fb:	51                   	push   %ecx
4081fc:	8b 55 f0             	mov    -0x10(%ebp),%edx
4081ff:	52                   	push   %edx
408200:	8b 45 08             	mov    0x8(%ebp),%eax
408203:	50                   	push   %eax
408204:	e8 b7 a3 ff ff       	call   0x4025c0
408209:	8b 88 d4 00 00 00    	mov    0xd4(%eax),%ecx
40820f:	ff d1                	call   *%ecx
408211:	85 c0                	test   %eax,%eax
408213:	74 18                	je     0x40822d
408215:	8b 55 e8             	mov    -0x18(%ebp),%edx
408218:	33 c0                	xor    %eax,%eax
40821a:	03 55 c4             	add    -0x3c(%ebp),%edx
40821d:	13 45 c8             	adc    -0x38(%ebp),%eax
408220:	89 55 c4             	mov    %edx,-0x3c(%ebp)
408223:	89 45 c8             	mov    %eax,-0x38(%ebp)
408226:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
40822d:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
408231:	75 02                	jne    0x408235
408233:	eb 05                	jmp    0x40823a
408235:	e9 cd fe ff ff       	jmp    0x408107
40823a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40823d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
408240:	8b 55 d4             	mov    -0x2c(%ebp),%edx
408243:	8b 45 c4             	mov    -0x3c(%ebp),%eax
408246:	3b 02                	cmp    (%edx),%eax
408248:	0f 85 78 01 00 00    	jne    0x4083c6
40824e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
408251:	8b 55 c8             	mov    -0x38(%ebp),%edx
408254:	3b 51 04             	cmp    0x4(%ecx),%edx
408257:	0f 85 69 01 00 00    	jne    0x4083c6
40825d:	c7 45 cc 0f 00 00 00 	movl   $0xf,-0x34(%ebp)
408264:	8b 45 cc             	mov    -0x34(%ebp),%eax
408267:	50                   	push   %eax
408268:	e8 13 e6 ff ff       	call   0x406880
40826d:	83 c4 04             	add    $0x4,%esp
408270:	89 45 f4             	mov    %eax,-0xc(%ebp)
408273:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
408277:	0f 84 49 01 00 00    	je     0x4083c6
40827d:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
408284:	6a 01                	push   $0x1
408286:	8d 4d ff             	lea    -0x1(%ebp),%ecx
408289:	51                   	push   %ecx
40828a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40828d:	52                   	push   %edx
40828e:	e8 0d e7 ff ff       	call   0x4069a0
408293:	83 c4 0c             	add    $0xc,%esp
408296:	8b 45 f8             	mov    -0x8(%ebp),%eax
408299:	83 c0 01             	add    $0x1,%eax
40829c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40829f:	6a 04                	push   $0x4
4082a1:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4082a4:	51                   	push   %ecx
4082a5:	8b 55 f4             	mov    -0xc(%ebp),%edx
4082a8:	03 55 f8             	add    -0x8(%ebp),%edx
4082ab:	52                   	push   %edx
4082ac:	e8 ef e6 ff ff       	call   0x4069a0