4040cf:	81 ec 2c 01 00 00    	sub    $0x12c,%esp
4040d5:	8b 45 0c             	mov    0xc(%ebp),%eax
4040d8:	53                   	push   %ebx
4040d9:	56                   	push   %esi
4040da:	83 e8 05             	sub    $0x5,%eax
4040dd:	57                   	push   %edi
4040de:	0f 84 f3 01 00 00    	je     0x4042d7
4040e4:	83 e8 0b             	sub    $0xb,%eax
4040e7:	0f 84 07 01 00 00    	je     0x4041f4
4040ed:	83 e8 3e             	sub    $0x3e,%eax
4040f0:	0f 84 cb 01 00 00    	je     0x4042c1
4040f6:	2d c2 00 00 00       	sub    $0xc2,%eax
4040fb:	0f 84 3f 01 00 00    	je     0x404240
404101:	48                   	dec    %eax
404102:	74 07                	je     0x40410b
404104:	33 c0                	xor    %eax,%eax
404106:	e9 07 02 00 00       	jmp    0x404312
40410b:	66 81 7d 10 78 04    	cmpw   $0x478,0x10(%ebp)
404111:	8b 35 bc a2 40 00    	mov    0x40a2bc,%esi
404117:	8b 1d dc a2 40 00    	mov    0x40a2dc,%ebx
40411d:	bf e8 03 00 00       	mov    $0x3e8,%edi
404122:	72 25                	jb     0x404149
404124:	66 81 7d 10 7a 04    	cmpw   $0x47a,0x10(%ebp)
40412a:	77 1d                	ja     0x404149
40412c:	6a 01                	push   $0x1
40412e:	6a ff                	push   $0xffffffff
404130:	68 0c 10 00 00       	push   $0x100c
404135:	57                   	push   %edi
404136:	ff 75 08             	push   0x8(%ebp)
404139:	ff d6                	call   *%esi
40413b:	50                   	push   %eax
40413c:	ff d3                	call   *%ebx
40413e:	83 f8 ff             	cmp    $0xffffffff,%eax
404141:	0f 84 c8 01 00 00    	je     0x40430f
404147:	eb 03                	jmp    0x40414c
404149:	8b 45 08             	mov    0x8(%ebp),%eax
40414c:	0f b7 4d 10          	movzwl 0x10(%ebp),%ecx
404150:	81 e9 ea 03 00 00    	sub    $0x3ea,%ecx
404156:	0f 84 a8 00 00 00    	je     0x404204
40415c:	49                   	dec    %ecx
40415d:	0f 84 91 00 00 00    	je     0x4041f4
404163:	81 e9 8d 00 00 00    	sub    $0x8d,%ecx
404169:	74 3a                	je     0x4041a5
40416b:	49                   	dec    %ecx
40416c:	74 1d                	je     0x40418b
40416e:	49                   	dec    %ecx
40416f:	0f 85 9a 01 00 00    	jne    0x40430f
404175:	8b 0d c0 d7 40 00    	mov    0x40d7c0,%ecx
40417b:	6a 01                	push   $0x1
40417d:	50                   	push   %eax
40417e:	ff 75 08             	push   0x8(%ebp)
404181:	e8 48 f5 ff ff       	call   0x4036ce
404186:	e9 84 01 00 00       	jmp    0x40430f
40418b:	6a 01                	push   $0x1
40418d:	50                   	push   %eax
40418e:	57                   	push   %edi
40418f:	ff 75 08             	push   0x8(%ebp)
404192:	ff d6                	call   *%esi
404194:	8b 0d c0 d7 40 00    	mov    0x40d7c0,%ecx
40419a:	50                   	push   %eax
40419b:	e8 95 f3 ff ff       	call   0x403535
4041a0:	e9 6a 01 00 00       	jmp    0x40430f
4041a5:	89 45 dc             	mov    %eax,-0x24(%ebp)
4041a8:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
4041ae:	89 45 ec             	mov    %eax,-0x14(%ebp)
4041b1:	8d 45 d8             	lea    -0x28(%ebp),%eax
4041b4:	50                   	push   %eax
4041b5:	6a 00                	push   $0x0
4041b7:	68 05 10 00 00       	push   $0x1005
4041bc:	57                   	push   %edi
4041bd:	ff 75 08             	push   0x8(%ebp)
4041c0:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
4041c7:	c7 45 e0 06 00 00 00 	movl   $0x6,-0x20(%ebp)
4041ce:	c7 45 f0 04 01 00 00 	movl   $0x104,-0x10(%ebp)
4041d5:	ff d6                	call   *%esi
4041d7:	50                   	push   %eax
4041d8:	ff d3                	call   *%ebx
4041da:	85 c0                	test   %eax,%eax
4041dc:	0f 84 2d 01 00 00    	je     0x40430f
4041e2:	ff 75 ec             	push   -0x14(%ebp)
4041e5:	ff 75 08             	push   0x8(%ebp)
4041e8:	e8 f3 4a 00 00       	call   0x408ce0
4041ed:	59                   	pop    %ecx
4041ee:	59                   	pop    %ecx
4041ef:	e9 1b 01 00 00       	jmp    0x40430f
4041f4:	6a 02                	push   $0x2
4041f6:	ff 75 08             	push   0x8(%ebp)
4041f9:	ff 15 c0 a2 40 00    	call   *0x40a2c0
4041ff:	e9 0b 01 00 00       	jmp    0x40430f
404204:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
40420a:	68 04 01 00 00       	push   $0x104
40420f:	50                   	push   %eax
404210:	68 e9 03 00 00       	push   $0x3e9
404215:	ff 75 08             	push   0x8(%ebp)
404218:	ff 15 ac a2 40 00    	call   *0x40a2ac
40421e:	85 c0                	test   %eax,%eax
404220:	0f 84 e9 00 00 00    	je     0x40430f
404226:	8b 0d c0 d7 40 00    	mov    0x40d7c0,%ecx
40422c:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
404232:	50                   	push   %eax
404233:	ff 75 08             	push   0x8(%ebp)
404236:	e8 de 00 00 00       	call   0x404319
40423b:	e9 cf 00 00 00       	jmp    0x40430f
404240:	68 e8 03 00 00       	push   $0x3e8
404245:	ff 75 08             	push   0x8(%ebp)
404248:	ff 15 bc a2 40 00    	call   *0x40a2bc
40424e:	8b 0d c0 d7 40 00    	mov    0x40d7c0,%ecx
404254:	8b d8                	mov    %eax,%ebx
404256:	53                   	push   %ebx
404257:	e8 b9 f6 ff ff       	call   0x403915
40425c:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
404262:	8d 45 e0             	lea    -0x20(%ebp),%eax
404265:	50                   	push   %eax
404266:	bf 1b 10 00 00       	mov    $0x101b,%edi
40426b:	6a 00                	push   $0x0
40426d:	57                   	push   %edi
40426e:	53                   	push   %ebx
40426f:	c7 45 e0 06 00 00 00 	movl   $0x6,-0x20(%ebp)
404276:	c7 45 ec d0 c5 40 00 	movl   $0x40c5d0,-0x14(%ebp)
40427d:	c7 45 e8 28 00 00 00 	movl   $0x28,-0x18(%ebp)
404284:	ff d6                	call   *%esi
404286:	8d 45 e0             	lea    -0x20(%ebp),%eax
404289:	c7 45 ec 74 c3 40 00 	movl   $0x40c374,-0x14(%ebp)
404290:	50                   	push   %eax
404291:	6a 00                	push   $0x0
404293:	57                   	push   %edi
404294:	53                   	push   %ebx
404295:	c7 45 e8 46 00 00 00 	movl   $0x46,-0x18(%ebp)
40429c:	ff d6                	call   *%esi
40429e:	68 97 01 00 00       	push   $0x197
4042a3:	6a 00                	push   $0x0
4042a5:	ff 15 f8 a0 40 00    	call   *0x40a0f8
4042ab:	50                   	push   %eax
4042ac:	ff 15 9c a2 40 00    	call   *0x40a29c
4042b2:	50                   	push   %eax
4042b3:	6a 01                	push   $0x1
4042b5:	68 80 00 00 00       	push   $0x80
4042ba:	ff 75 08             	push   0x8(%ebp)
4042bd:	ff d6                	call   *%esi
4042bf:	eb 4e                	jmp    0x40430f
4042c1:	ff 75 14             	push   0x14(%ebp)
4042c4:	8b 0d c0 d7 40 00    	mov    0x40d7c0,%ecx
4042ca:	ff 75 10             	push   0x10(%ebp)
4042cd:	ff 75 08             	push   0x8(%ebp)
4042d0:	e8 96 f1 ff ff       	call   0x40346b
4042d5:	eb 38                	jmp    0x40430f
4042d7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4042da:	50                   	push   %eax
4042db:	ff 75 08             	push   0x8(%ebp)
4042de:	ff 15 68 a2 40 00    	call   *0x40a268
4042e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4042e7:	6a 04                	push   $0x4
4042e9:	83 c0 ca             	add    $0xffffffca,%eax
4042ec:	50                   	push   %eax
4042ed:	8b 45 f8             	mov    -0x8(%ebp),%eax
4042f0:	83 c0 f6             	add    $0xfffffff6,%eax
4042f3:	50                   	push   %eax
4042f4:	6a 31                	push   $0x31
4042f6:	6a 05                	push   $0x5
4042f8:	6a 00                	push   $0x0
4042fa:	68 e8 03 00 00       	push   $0x3e8
4042ff:	ff 75 08             	push   0x8(%ebp)
404302:	ff 15 bc a2 40 00    	call   *0x40a2bc
404308:	50                   	push   %eax
404309:	ff 15 84 a2 40 00    	call   *0x40a284
40430f:	6a 01                	push   $0x1
404311:	58                   	pop    %eax
404312:	5f                   	pop    %edi
404313:	5e                   	pop    %esi
404314:	5b                   	pop    %ebx
404315:	c9                   	leave
404316:	c2 10 00             	ret    $0x10
404319:	55                   	push   %ebp
40431a:	8b ec                	mov    %esp,%ebp
40431c:	81 ec 40 01 00 00    	sub    $0x140,%esp
404322:	53                   	push   %ebx
404323:	56                   	push   %esi
404324:	57                   	push   %edi
404325:	68 e8 03 00 00       	push   $0x3e8
40432a:	ff 75 08             	push   0x8(%ebp)
40432d:	8b f9                	mov    %ecx,%edi
40432f:	ff 15 bc a2 40 00    	call   *0x40a2bc
404335:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
40433b:	33 db                	xor    %ebx,%ebx
40433d:	89 45 f8             	mov    %eax,-0x8(%ebp)
404340:	8b 87 5c 02 00 00    	mov    0x25c(%edi),%eax
404346:	53                   	push   %ebx
404347:	53                   	push   %ebx
404348:	68 04 10 00 00       	push   $0x1004
40434d:	ff b0 ec 01 00 00    	push   0x1ec(%eax)
404353:	ff d6                	call   *%esi
404355:	ff 75 0c             	push   0xc(%ebp)
404358:	89 45 fc             	mov    %eax,-0x4(%ebp)
40435b:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
404361:	68 e4 c5 40 00       	push   $0x40c5e4
404366:	50                   	push   %eax
404367:	ff 15 58 a1 40 00    	call   *0x40a158
40436d:	83 c4 0c             	add    $0xc,%esp
404370:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
404376:	50                   	push   %eax
404377:	53                   	push   %ebx
404378:	6a 0c                	push   $0xc
40437a:	ff 75 08             	push   0x8(%ebp)
40437d:	ff d6                	call   *%esi
40437f:	8b 45 f8             	mov    -0x8(%ebp),%eax
404382:	ff 75 0c             	push   0xc(%ebp)
404385:	89 87 60 02 00 00    	mov    %eax,0x260(%edi)
40438b:	8b 87 5c 02 00 00    	mov    0x25c(%edi),%eax
404391:	89 98 dc 01 00 00    	mov    %ebx,0x1dc(%eax)
404397:	8b 87 5c 02 00 00    	mov    0x25c(%edi),%eax
40439d:	05 d8 00 00 00       	add    $0xd8,%eax
4043a2:	50                   	push   %eax
4043a3:	e8 a0 4c 00 00       	call   0x409048
4043a8:	59                   	pop    %ecx
4043a9:	59                   	pop    %ecx
4043aa:	53                   	push   %ebx
4043ab:	53                   	push   %ebx
4043ac:	68 09 10 00 00       	push   $0x1009
4043b1:	ff 75 f8             	push   -0x8(%ebp)
4043b4:	ff d6                	call   *%esi
4043b6:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
4043b9:	89 5d 0c             	mov    %ebx,0xc(%ebp)
4043bc:	7e 15                	jle    0x4043d3
4043be:	ff 75 0c             	push   0xc(%ebp)
4043c1:	8b cf                	mov    %edi,%ecx
4043c3:	e8 f6 f5 ff ff       	call   0x4039be
4043c8:	ff 45 0c             	incl   0xc(%ebp)
4043cb:	8b 45 0c             	mov    0xc(%ebp),%eax
4043ce:	3b 45 fc             	cmp    -0x4(%ebp),%eax
4043d1:	7c eb                	jl     0x4043be
4043d3:	68 d4 c5 40 00       	push   $0x40c5d4
4043d8:	53                   	push   %ebx
4043d9:	6a 0c                	push   $0xc
4043db:	ff 75 08             	push   0x8(%ebp)
4043de:	ff d6                	call   *%esi
4043e0:	5f                   	pop    %edi
4043e1:	5e                   	pop    %esi
4043e2:	5b                   	pop    %ebx
4043e3:	c9                   	leave
4043e4:	c2 08 00             	ret    $0x8
4043e7:	33 c0                	xor    %eax,%eax
4043e9:	89 0d c0 d7 40 00    	mov    %ecx,0x40d7c0
4043ef:	50                   	push   %eax
4043f0:	68 cc 40 40 00       	push   $0x4040cc
4043f5:	50                   	push   %eax
4043f6:	6a 65                	push   $0x65
4043f8:	50                   	push   %eax
4043f9:	ff 15 f8 a0 40 00    	call   *0x40a0f8
4043ff:	50                   	push   %eax
404400:	ff 15 e4 a2 40 00    	call   *0x40a2e4
404406:	c2 04 00             	ret    $0x4
404409:	8b c1                	mov    %ecx,%eax
40440b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40440f:	89 48 3c             	mov    %ecx,0x3c(%eax)
404412:	33 c9                	xor    %ecx,%ecx
404414:	89 48 4c             	mov    %ecx,0x4c(%eax)
404417:	89 48 30             	mov    %ecx,0x30(%eax)
40441a:	89 48 04             	mov    %ecx,0x4(%eax)
40441d:	89 48 08             	mov    %ecx,0x8(%eax)
404420:	89 48 0c             	mov    %ecx,0xc(%eax)
404423:	89 48 10             	mov    %ecx,0x10(%eax)
404426:	89 48 18             	mov    %ecx,0x18(%eax)
404429:	89 48 44             	mov    %ecx,0x44(%eax)
40442c:	89 48 48             	mov    %ecx,0x48(%eax)
40442f:	89 48 1c             	mov    %ecx,0x1c(%eax)
404432:	89 48 20             	mov    %ecx,0x20(%eax)
404435:	c2 04 00             	ret    $0x4
404438:	55                   	push   %ebp
404439:	8b ec                	mov    %esp,%ebp
40443b:	81 ec 08 01 00 00    	sub    $0x108,%esp
404441:	56                   	push   %esi
404442:	57                   	push   %edi
404443:	8b 7d 08             	mov    0x8(%ebp),%edi
404446:	8d 45 fc             	lea    -0x4(%ebp),%eax
404449:	50                   	push   %eax
40444a:	57                   	push   %edi
40444b:	ff 15 8c a2 40 00    	call   *0x40a28c
404451:	8b 75 0c             	mov    0xc(%ebp),%esi
404454:	8b 45 fc             	mov    -0x4(%ebp),%eax
404457:	3b 46 58             	cmp    0x58(%esi),%eax
40445a:	75 7c                	jne    0x4044d8
40445c:	6a 04                	push   $0x4
40445e:	57                   	push   %edi
40445f:	ff 15 48 a2 40 00    	call   *0x40a248
404465:	85 c0                	test   %eax,%eax
404467:	75 6f                	jne    0x4044d8
404469:	57                   	push   %edi
40446a:	ff 15 4c a2 40 00    	call   *0x40a24c
404470:	85 c0                	test   %eax,%eax
404472:	74 64                	je     0x4044d8
404474:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40447a:	68 04 01 00 00       	push   $0x104
40447f:	50                   	push   %eax
404480:	57                   	push   %edi
404481:	ff 15 50 a2 40 00    	call   *0x40a250
404487:	85 c0                	test   %eax,%eax
404489:	7e 4d                	jle    0x4044d8
40448b:	53                   	push   %ebx
40448c:	8b 5e 44             	mov    0x44(%esi),%ebx
40448f:	6a 00                	push   $0x0
404491:	6a 01                	push   $0x1
404493:	6a 7f                	push   $0x7f
404495:	57                   	push   %edi
404496:	8b 3d dc a2 40 00    	mov    0x40a2dc,%edi
40449c:	ff d7                	call   *%edi
40449e:	85 c0                	test   %eax,%eax
4044a0:	75 0d                	jne    0x4044af
4044a2:	50                   	push   %eax
4044a3:	50                   	push   %eax
4044a4:	6a 7f                	push   $0x7f
4044a6:	ff 75 08             	push   0x8(%ebp)
4044a9:	ff d7                	call   *%edi
4044ab:	85 c0                	test   %eax,%eax
4044ad:	74 0f                	je     0x4044be
4044af:	50                   	push   %eax
4044b0:	ff 76 48             	push   0x48(%esi)
4044b3:	ff 76 40             	push   0x40(%esi)
4044b6:	ff 15 40 a0 40 00    	call   *0x40a040
4044bc:	8b d8                	mov    %eax,%ebx
4044be:	ff 75 08             	push   0x8(%ebp)
4044c1:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4044c7:	8b ce                	mov    %esi,%ecx
4044c9:	53                   	push   %ebx
4044ca:	ff 76 4c             	push   0x4c(%esi)
4044cd:	50                   	push   %eax
4044ce:	e8 00 0a 00 00       	call   0x404ed3
4044d3:	33 c0                	xor    %eax,%eax
4044d5:	5b                   	pop    %ebx
4044d6:	eb 03                	jmp    0x4044db
4044d8:	6a 01                	push   $0x1
4044da:	58                   	pop    %eax
4044db:	5f                   	pop    %edi
4044dc:	5e                   	pop    %esi
4044dd:	c9                   	leave
4044de:	c2 08 00             	ret    $0x8
4044e1:	55                   	push   %ebp
4044e2:	8b ec                	mov    %esp,%ebp
4044e4:	81 ec 04 01 00 00    	sub    $0x104,%esp
4044ea:	53                   	push   %ebx
4044eb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4044ee:	56                   	push   %esi
4044ef:	57                   	push   %edi
4044f0:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4044f6:	68 b4 00 00 00       	push   $0xb4
4044fb:	50                   	push   %eax
4044fc:	53                   	push   %ebx
4044fd:	ff 15 50 a2 40 00    	call   *0x40a250
404503:	8b f0                	mov    %eax,%esi
404505:	85 f6                	test   %esi,%esi
404507:	74 14                	je     0x40451d