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
4082b1:	83 c4 0c             	add    $0xc,%esp
4082b4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4082b7:	83 c0 04             	add    $0x4,%eax
4082ba:	89 45 f8             	mov    %eax,-0x8(%ebp)
4082bd:	6a 04                	push   $0x4
4082bf:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4082c2:	51                   	push   %ecx
4082c3:	8b 55 f4             	mov    -0xc(%ebp),%edx
4082c6:	03 55 f8             	add    -0x8(%ebp),%edx
4082c9:	52                   	push   %edx
4082ca:	e8 d1 e6 ff ff       	call   0x4069a0
4082cf:	83 c4 0c             	add    $0xc,%esp
4082d2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4082d5:	83 c0 04             	add    $0x4,%eax
4082d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4082db:	6a 02                	push   $0x2
4082dd:	68 88 71 41 00       	push   $0x417188
4082e2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4082e5:	03 4d f8             	add    -0x8(%ebp),%ecx
4082e8:	51                   	push   %ecx
4082e9:	e8 b2 e6 ff ff       	call   0x4069a0
4082ee:	83 c4 0c             	add    $0xc,%esp
4082f1:	8b 55 f8             	mov    -0x8(%ebp),%edx
4082f4:	83 c2 02             	add    $0x2,%edx
4082f7:	89 55 f8             	mov    %edx,-0x8(%ebp)
4082fa:	6a 04                	push   $0x4
4082fc:	e8 7f b8 ff ff       	call   0x403b80
408301:	83 c0 38             	add    $0x38,%eax
408304:	50                   	push   %eax
408305:	8b 45 f4             	mov    -0xc(%ebp),%eax
408308:	03 45 f8             	add    -0x8(%ebp),%eax
40830b:	50                   	push   %eax
40830c:	e8 8f e6 ff ff       	call   0x4069a0
408311:	83 c4 0c             	add    $0xc,%esp
408314:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408317:	83 c1 04             	add    $0x4,%ecx
40831a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40831d:	6a 00                	push   $0x0
40831f:	8d 55 e8             	lea    -0x18(%ebp),%edx
408322:	52                   	push   %edx
408323:	8b 45 cc             	mov    -0x34(%ebp),%eax
408326:	50                   	push   %eax
408327:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40832a:	51                   	push   %ecx
40832b:	8b 55 08             	mov    0x8(%ebp),%edx
40832e:	52                   	push   %edx
40832f:	e8 8c a2 ff ff       	call   0x4025c0
408334:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
40833a:	ff d0                	call   *%eax
40833c:	85 c0                	test   %eax,%eax
40833e:	74 7a                	je     0x4083ba
408340:	8b 4d 08             	mov    0x8(%ebp),%ecx
408343:	51                   	push   %ecx
408344:	e8 77 a2 ff ff       	call   0x4025c0
408349:	8b 90 9c 01 00 00    	mov    0x19c(%eax),%edx
40834f:	ff d2                	call   *%edx
408351:	6a 08                	push   $0x8
408353:	6a 00                	push   $0x0
408355:	8d 45 b4             	lea    -0x4c(%ebp),%eax
408358:	50                   	push   %eax
408359:	e8 22 e6 ff ff       	call   0x406980
40835e:	83 c4 0c             	add    $0xc,%esp
408361:	6a 02                	push   $0x2
408363:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
408366:	51                   	push   %ecx
408367:	8b 55 b8             	mov    -0x48(%ebp),%edx
40836a:	52                   	push   %edx
40836b:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40836e:	50                   	push   %eax
40836f:	8b 4d 08             	mov    0x8(%ebp),%ecx
408372:	51                   	push   %ecx
408373:	e8 48 a2 ff ff       	call   0x4025c0
408378:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
40837e:	ff d2                	call   *%edx
408380:	85 c0                	test   %eax,%eax
408382:	74 36                	je     0x4083ba
408384:	6a 00                	push   $0x0
408386:	6a 00                	push   $0x0
408388:	8b 45 b8             	mov    -0x48(%ebp),%eax
40838b:	50                   	push   %eax
40838c:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
40838f:	51                   	push   %ecx
408390:	8b 55 08             	mov    0x8(%ebp),%edx
408393:	52                   	push   %edx
408394:	e8 27 a2 ff ff       	call   0x4025c0
408399:	8b 80 e4 00 00 00    	mov    0xe4(%eax),%eax
40839f:	ff d0                	call   *%eax
4083a1:	85 c0                	test   %eax,%eax
4083a3:	74 15                	je     0x4083ba
4083a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4083a8:	8b 55 94             	mov    -0x6c(%ebp),%edx
4083ab:	89 11                	mov    %edx,(%ecx)
4083ad:	8b 45 98             	mov    -0x68(%ebp),%eax
4083b0:	89 41 04             	mov    %eax,0x4(%ecx)
4083b3:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
4083ba:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4083bd:	51                   	push   %ecx
4083be:	e8 ed e4 ff ff       	call   0x4068b0
4083c3:	83 c4 04             	add    $0x4,%esp
4083c6:	8b 55 f0             	mov    -0x10(%ebp),%edx
4083c9:	52                   	push   %edx
4083ca:	e8 e1 e4 ff ff       	call   0x4068b0
4083cf:	83 c4 04             	add    $0x4,%esp
4083d2:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4083d6:	8b 45 e0             	mov    -0x20(%ebp),%eax
4083d9:	5e                   	pop    %esi
4083da:	8b e5                	mov    %ebp,%esp
4083dc:	5d                   	pop    %ebp
4083dd:	c3                   	ret
4083de:	cc                   	int3
4083df:	cc                   	int3
4083e0:	55                   	push   %ebp
4083e1:	8b ec                	mov    %esp,%ebp
4083e3:	83 ec 1c             	sub    $0x1c,%esp
4083e6:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4083ed:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4083f1:	74 12                	je     0x408405
4083f3:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4083f7:	74 0c                	je     0x408405
4083f9:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4083fd:	74 06                	je     0x408405
4083ff:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
408403:	75 08                	jne    0x40840d
408405:	8b 45 f8             	mov    -0x8(%ebp),%eax
408408:	e9 09 01 00 00       	jmp    0x408516
40840d:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
408414:	8b 45 0c             	mov    0xc(%ebp),%eax
408417:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40841a:	8b 4d 10             	mov    0x10(%ebp),%ecx
40841d:	89 4d e8             	mov    %ecx,-0x18(%ebp)
408420:	6a 00                	push   $0x0
408422:	6a 00                	push   $0x0
408424:	8b 55 e8             	mov    -0x18(%ebp),%edx
408427:	52                   	push   %edx
408428:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40842b:	50                   	push   %eax
40842c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40842f:	51                   	push   %ecx
408430:	e8 8b a1 ff ff       	call   0x4025c0
408435:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
40843b:	ff d2                	call   *%edx
40843d:	85 c0                	test   %eax,%eax
40843f:	0f 84 ce 00 00 00    	je     0x408513
408445:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40844c:	6a 00                	push   $0x0
40844e:	8d 45 f4             	lea    -0xc(%ebp),%eax
408451:	50                   	push   %eax
408452:	e8 a9 cf ff ff       	call   0x405400
408457:	8b 48 10             	mov    0x10(%eax),%ecx
40845a:	51                   	push   %ecx
40845b:	8b 55 14             	mov    0x14(%ebp),%edx
40845e:	52                   	push   %edx
40845f:	8b 45 08             	mov    0x8(%ebp),%eax
408462:	50                   	push   %eax
408463:	e8 58 a1 ff ff       	call   0x4025c0
408468:	8b 88 d8 00 00 00    	mov    0xd8(%eax),%ecx
40846e:	ff d1                	call   *%ecx
408470:	85 c0                	test   %eax,%eax
408472:	0f 84 9b 00 00 00    	je     0x408513
408478:	6a 00                	push   $0x0
40847a:	6a 00                	push   $0x0
40847c:	8b 55 e8             	mov    -0x18(%ebp),%edx
40847f:	52                   	push   %edx
408480:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408483:	50                   	push   %eax
408484:	8b 4d 08             	mov    0x8(%ebp),%ecx
408487:	51                   	push   %ecx
408488:	e8 33 a1 ff ff       	call   0x4025c0
40848d:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
408493:	ff d2                	call   *%edx
408495:	85 c0                	test   %eax,%eax
408497:	74 7a                	je     0x408513
408499:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4084a0:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4084a7:	8d 45 f0             	lea    -0x10(%ebp),%eax