404fe7:	2b c2                	sub    %edx,%eax
404fe9:	0f 85 86 00 00 00    	jne    0x405075
404fef:	e8 cc a8 00 00       	call   0x40f8c0
404ff4:	eb 7f                	jmp    0x405075
404ff6:	e8 48 a8 00 00       	call   0x40f843
404ffb:	eb 78                	jmp    0x405075
404ffd:	e8 d9 0a 00 00       	call   0x405adb
405002:	8b f0                	mov    %eax,%esi
405004:	85 f6                	test   %esi,%esi
405006:	74 63                	je     0x40506b
405008:	c7 06 68 49 41 00    	movl   $0x414968,(%esi)
40500e:	eb 5d                	jmp    0x40506d
405010:	6a 0c                	push   $0xc
405012:	59                   	pop    %ecx
405013:	e8 c3 0a 00 00       	call   0x405adb
405018:	8b f0                	mov    %eax,%esi
40501a:	85 f6                	test   %esi,%esi
40501c:	74 4d                	je     0x40506b
40501e:	c7 06 64 48 41 00    	movl   $0x414864,(%esi)
405024:	e9 b5 fc ff ff       	jmp    0x404cde
405029:	6a 08                	push   $0x8
40502b:	59                   	pop    %ecx
40502c:	e8 aa 0a 00 00       	call   0x405adb
405031:	8b f0                	mov    %eax,%esi
405033:	85 f6                	test   %esi,%esi
405035:	74 34                	je     0x40506b
405037:	c7 06 fc 26 41 00    	movl   $0x4126fc,(%esi)
40503d:	eb 2e                	jmp    0x40506d
40503f:	6a 08                	push   $0x8
405041:	59                   	pop    %ecx
405042:	e8 94 0a 00 00       	call   0x405adb
405047:	8b f0                	mov    %eax,%esi
405049:	85 f6                	test   %esi,%esi
40504b:	74 1e                	je     0x40506b
40504d:	c7 06 d0 48 41 00    	movl   $0x4148d0,(%esi)
405053:	e9 0e fc ff ff       	jmp    0x404c66
405058:	e8 7e 0a 00 00       	call   0x405adb
40505d:	8b f0                	mov    %eax,%esi
40505f:	85 f6                	test   %esi,%esi
405061:	74 08                	je     0x40506b
405063:	c7 06 80 49 41 00    	movl   $0x414980,(%esi)
405069:	eb 02                	jmp    0x40506d
40506b:	33 f6                	xor    %esi,%esi
40506d:	8b 06                	mov    (%esi),%eax
40506f:	8b ce                	mov    %esi,%ecx
405071:	57                   	push   %edi
405072:	ff 50 04             	call   *0x4(%eax)
405075:	8b 5d 08             	mov    0x8(%ebp),%ebx
405078:	8b cb                	mov    %ebx,%ecx
40507a:	56                   	push   %esi
40507b:	8b 75 f8             	mov    -0x8(%ebp),%esi
40507e:	8b 03                	mov    (%ebx),%eax
405080:	ff 76 2c             	push   0x2c(%esi)
405083:	ff 10                	call   *(%eax)
405085:	8b 45 f0             	mov    -0x10(%ebp),%eax
405088:	3b 46 28             	cmp    0x28(%esi),%eax
40508b:	76 52                	jbe    0x4050df
40508d:	8d 46 10             	lea    0x10(%esi),%eax
405090:	50                   	push   %eax
405091:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405094:	e8 e0 dd ff ff       	call   0x402e79
405099:	8b 56 28             	mov    0x28(%esi),%edx
40509c:	8d 4e 10             	lea    0x10(%esi),%ecx
40509f:	8b 46 14             	mov    0x14(%esi),%eax
4050a2:	2b c2                	sub    %edx,%eax
4050a4:	83 e8 0c             	sub    $0xc,%eax
4050a7:	50                   	push   %eax
4050a8:	8d 42 0c             	lea    0xc(%edx),%eax
4050ab:	50                   	push   %eax
4050ac:	8d 45 ec             	lea    -0x14(%ebp),%eax
4050af:	50                   	push   %eax
4050b0:	e8 d0 db ff ff       	call   0x402c85
4050b5:	8d 45 ec             	lea    -0x14(%ebp),%eax
4050b8:	50                   	push   %eax
4050b9:	8d 4e 10             	lea    0x10(%esi),%ecx
4050bc:	e8 0b dc ff ff       	call   0x402ccc
4050c1:	83 66 18 00          	andl   $0x0,0x18(%esi)
4050c5:	8b ce                	mov    %esi,%ecx
4050c7:	53                   	push   %ebx
4050c8:	e8 c0 fa ff ff       	call   0x404b8d
4050cd:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4050d0:	e8 91 dd ff ff       	call   0x402e66
4050d5:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4050d8:	e8 89 dd ff ff       	call   0x402e66
4050dd:	eb 08                	jmp    0x4050e7
4050df:	8d 4e 10             	lea    0x10(%esi),%ecx
4050e2:	e8 0c dd ff ff       	call   0x402df3
4050e7:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
4050eb:	76 07                	jbe    0x4050f4
4050ed:	8b cf                	mov    %edi,%ecx
4050ef:	e8 ff dc ff ff       	call   0x402df3
4050f4:	83 66 18 00          	andl   $0x0,0x18(%esi)
4050f8:	5f                   	pop    %edi
4050f9:	5e                   	pop    %esi
4050fa:	5b                   	pop    %ebx
4050fb:	c9                   	leave
4050fc:	c2 04 00             	ret    $0x4
4050ff:	8b 09                	mov    (%ecx),%ecx
405101:	33 c0                	xor    %eax,%eax
405103:	81 39 29 bb 66 e4    	cmpl   $0xe466bb29,(%ecx)
405109:	0f 94 c0             	sete   %al
40510c:	c3                   	ret
40510d:	56                   	push   %esi
40510e:	8b f1                	mov    %ecx,%esi
405110:	ff 15 ec 22 41 00    	call   *0x4122ec
405116:	8d 8e d8 01 00 00    	lea    0x1d8(%esi),%ecx
40511c:	e8 00 91 00 00       	call   0x40e221
405121:	8d 4e 30             	lea    0x30(%esi),%ecx
405124:	e8 3d dd ff ff       	call   0x402e66
405129:	8d 4e 10             	lea    0x10(%esi),%ecx
40512c:	e8 35 dd ff ff       	call   0x402e66
405131:	8b 0e                	mov    (%esi),%ecx
405133:	5e                   	pop    %esi
405134:	e9 f4 08 00 00       	jmp    0x405a2d
405139:	56                   	push   %esi
40513a:	8b f1                	mov    %ecx,%esi
40513c:	6a 02                	push   $0x2
40513e:	ff 76 0c             	push   0xc(%esi)
405141:	83 66 08 00          	andl   $0x0,0x8(%esi)
405145:	ff 15 e4 22 41 00    	call   *0x4122e4
40514b:	ff 76 0c             	push   0xc(%esi)
40514e:	ff 15 e8 22 41 00    	call   *0x4122e8
405154:	83 4e 0c ff          	orl    $0xffffffff,0xc(%esi)
405158:	5e                   	pop    %esi
405159:	c3                   	ret
40515a:	55                   	push   %ebp
40515b:	8b ec                	mov    %esp,%ebp
40515d:	83 ec 18             	sub    $0x18,%esp
405160:	53                   	push   %ebx
405161:	56                   	push   %esi
405162:	57                   	push   %edi
405163:	8b f9                	mov    %ecx,%edi
405165:	83 7f 0c ff          	cmpl   $0xffffffff,0xc(%edi)
405169:	75 04                	jne    0x40516f
40516b:	33 c0                	xor    %eax,%eax
40516d:	eb 6e                	jmp    0x4051dd
40516f:	68 fc 27 41 00       	push   $0x4127fc
405174:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405177:	e8 70 e0 ff ff       	call   0x4031ec
40517c:	50                   	push   %eax
40517d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405180:	e8 ae dc ff ff       	call   0x402e33
405185:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405188:	e8 a0 08 00 00       	call   0x405a2d
40518d:	8b 75 08             	mov    0x8(%ebp),%esi
405190:	51                   	push   %ecx
405191:	51                   	push   %ecx
405192:	8b cc                	mov    %esp,%ecx
405194:	56                   	push   %esi
405195:	e8 df dc ff ff       	call   0x402e79
40519a:	51                   	push   %ecx
40519b:	51                   	push   %ecx
40519c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40519f:	8b cc                	mov    %esp,%ecx
4051a1:	50                   	push   %eax
4051a2:	e8 d2 dc ff ff       	call   0x402e79
4051a7:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4051aa:	e8 83 0a 00 00       	call   0x405c32
4051af:	83 c4 10             	add    $0x10,%esp
4051b2:	6a 00                	push   $0x0
4051b4:	ff 76 04             	push   0x4(%esi)
4051b7:	ff 75 f4             	push   -0xc(%ebp)
4051ba:	ff 77 0c             	push   0xc(%edi)
4051bd:	ff 15 dc 22 41 00    	call   *0x4122dc
4051c3:	33 db                	xor    %ebx,%ebx
4051c5:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4051c8:	83 f8 ff             	cmp    $0xffffffff,%eax
4051cb:	0f 95 c3             	setne  %bl
4051ce:	e8 93 dc ff ff       	call   0x402e66
4051d3:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4051d6:	e8 8b dc ff ff       	call   0x402e66
4051db:	8b c3                	mov    %ebx,%eax
4051dd:	5f                   	pop    %edi
4051de:	5e                   	pop    %esi
4051df:	5b                   	pop    %ebx
4051e0:	c9                   	leave
4051e1:	c2 04 00             	ret    $0x4
4051e4:	55                   	push   %ebp
4051e5:	8b ec                	mov    %esp,%ebp
4051e7:	b8 40 00 01 00       	mov    $0x10040,%eax
4051ec:	e8 3f bf ff ff       	call   0x401130
4051f1:	53                   	push   %ebx
4051f2:	8b d9                	mov    %ecx,%ebx
4051f4:	56                   	push   %esi
4051f5:	57                   	push   %edi
4051f6:	83 7b 0c ff          	cmpl   $0xffffffff,0xc(%ebx)
4051fa:	0f 84 88 01 00 00    	je     0x405388
405200:	6a 04                	push   $0x4
405202:	8d 45 e8             	lea    -0x18(%ebp),%eax
405205:	c7 45 e8 60 ea 00 00 	movl   $0xea60,-0x18(%ebp)
40520c:	50                   	push   %eax
40520d:	68 06 10 00 00       	push   $0x1006
405212:	be ff ff 00 00       	mov    $0xffff,%esi
405217:	56                   	push   %esi
405218:	ff 73 0c             	push   0xc(%ebx)
40521b:	ff 15 04 23 41 00    	call   *0x412304
405221:	56                   	push   %esi
405222:	33 f6                	xor    %esi,%esi
405224:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
40522a:	56                   	push   %esi
40522b:	50                   	push   %eax
40522c:	e8 21 be ff ff       	call   0x401052
405231:	83 c4 0c             	add    $0xc,%esp
405234:	89 75 c8             	mov    %esi,-0x38(%ebp)
405237:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40523a:	89 75 cc             	mov    %esi,-0x34(%ebp)
40523d:	68 fc 27 41 00       	push   $0x4127fc
405242:	e8 a5 df ff ff       	call   0x4031ec
405247:	50                   	push   %eax
405248:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40524b:	e8 e3 db ff ff       	call   0x402e33
405250:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405253:	e8 d5 07 00 00       	call   0x405a2d
405258:	89 75 f4             	mov    %esi,-0xc(%ebp)
40525b:	89 75 f8             	mov    %esi,-0x8(%ebp)
40525e:	56                   	push   %esi
40525f:	6a 0c                	push   $0xc
405261:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
405267:	50                   	push   %eax
405268:	ff 73 0c             	push   0xc(%ebx)
40526b:	ff 15 10 23 41 00    	call   *0x412310
405271:	8b f8                	mov    %eax,%edi
405273:	83 ff 0c             	cmp    $0xc,%edi
405276:	75 7d                	jne    0x4052f5
405278:	50                   	push   %eax
405279:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
40527f:	89 75 ec             	mov    %esi,-0x14(%ebp)
405282:	50                   	push   %eax
405283:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405286:	89 75 f0             	mov    %esi,-0x10(%ebp)
405289:	e8 33 db ff ff       	call   0x402dc1
40528e:	51                   	push   %ecx
40528f:	51                   	push   %ecx
405290:	8d 45 ec             	lea    -0x14(%ebp),%eax
405293:	8b cc                	mov    %esp,%ecx
405295:	50                   	push   %eax
405296:	e8 de db ff ff       	call   0x402e79
40529b:	51                   	push   %ecx
40529c:	51                   	push   %ecx
40529d:	8d 45 d8             	lea    -0x28(%ebp),%eax
4052a0:	8b cc                	mov    %esp,%ecx
4052a2:	50                   	push   %eax
4052a3:	e8 d1 db ff ff       	call   0x402e79
4052a8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4052ab:	e8 82 09 00 00       	call   0x405c32
4052b0:	8b 45 d0             	mov    -0x30(%ebp),%eax
4052b3:	83 c4 10             	add    $0x10,%esp
4052b6:	8b 40 04             	mov    0x4(%eax),%eax
4052b9:	8d 70 0c             	lea    0xc(%eax),%esi
4052bc:	85 c0                	test   %eax,%eax
4052be:	74 23                	je     0x4052e3
4052c0:	3b f7                	cmp    %edi,%esi
4052c2:	74 1f                	je     0x4052e3
4052c4:	6a 00                	push   $0x0
4052c6:	8b c6                	mov    %esi,%eax
4052c8:	2b c7                	sub    %edi,%eax
4052ca:	50                   	push   %eax
4052cb:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
4052d1:	03 c7                	add    %edi,%eax
4052d3:	50                   	push   %eax
4052d4:	ff 73 0c             	push   0xc(%ebx)
4052d7:	ff 15 10 23 41 00    	call   *0x412310
4052dd:	03 f8                	add    %eax,%edi
4052df:	3b f7                	cmp    %edi,%esi
4052e1:	75 e1                	jne    0x4052c4
4052e3:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4052e6:	e8 7b db ff ff       	call   0x402e66
4052eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4052ee:	e8 73 db ff ff       	call   0x402e66
4052f3:	eb 05                	jmp    0x4052fa
4052f5:	83 ff ff             	cmp    $0xffffffff,%edi
4052f8:	74 76                	je     0x405370
4052fa:	57                   	push   %edi
4052fb:	8d 85 c4 ff fe ff    	lea    -0x1003c(%ebp),%eax
405301:	50                   	push   %eax
405302:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405305:	e8 b7 da ff ff       	call   0x402dc1
40530a:	51                   	push   %ecx
40530b:	51                   	push   %ecx
40530c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40530f:	8b cc                	mov    %esp,%ecx
405311:	50                   	push   %eax
405312:	e8 62 db ff ff       	call   0x402e79
405317:	51                   	push   %ecx
405318:	51                   	push   %ecx
405319:	8d 45 d8             	lea    -0x28(%ebp),%eax
40531c:	8b cc                	mov    %esp,%ecx
40531e:	50                   	push   %eax
40531f:	e8 55 db ff ff       	call   0x402e79
405324:	8d 4d e0             	lea    -0x20(%ebp),%ecx
405327:	e8 06 09 00 00       	call   0x405c32
40532c:	83 c4 10             	add    $0x10,%esp
40532f:	8d 4b 10             	lea    0x10(%ebx),%ecx
405332:	e8 bc da ff ff       	call   0x402df3
405337:	57                   	push   %edi
405338:	ff 75 e0             	push   -0x20(%ebp)
40533b:	8d 4b 10             	lea    0x10(%ebx),%ecx
40533e:	e8 7e da ff ff       	call   0x402dc1
405343:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405346:	e8 a8 da ff ff       	call   0x402df3
40534b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40534e:	e8 a0 da ff ff       	call   0x402df3
405353:	ff 75 08             	push   0x8(%ebp)
405356:	8b cb                	mov    %ebx,%ecx
405358:	e8 30 f8 ff ff       	call   0x404b8d
40535d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
405360:	e8 01 db ff ff       	call   0x402e66
405365:	6a 00                	push   $0x0
405367:	5e                   	pop    %esi
405368:	85 ff                	test   %edi,%edi
40536a:	0f 8f ee fe ff ff    	jg     0x40525e
405370:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405373:	e8 ee da ff ff       	call   0x402e66
405378:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40537b:	e8 e6 da ff ff       	call   0x402e66
405380:	8d 4d c8             	lea    -0x38(%ebp),%ecx
405383:	e8 de da ff ff       	call   0x402e66
405388:	5f                   	pop    %edi
405389:	5e                   	pop    %esi
40538a:	5b                   	pop    %ebx
40538b:	c9                   	leave
40538c:	c2 04 00             	ret    $0x4
40538f:	55                   	push   %ebp
405390:	8b ec                	mov    %esp,%ebp
405392:	83 ec 24             	sub    $0x24,%esp
405395:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405399:	8d 45 08             	lea    0x8(%ebp),%eax
40539c:	53                   	push   %ebx
40539d:	56                   	push   %esi
40539e:	57                   	push   %edi
40539f:	50                   	push   %eax
4053a0:	8b d9                	mov    %ecx,%ebx
4053a2:	e8 ab db ff ff       	call   0x402f52
4053a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4053aa:	8d 8b d8 01 00 00    	lea    0x1d8(%ebx),%ecx
4053b0:	89 43 04             	mov    %eax,0x4(%ebx)
4053b3:	e8 55 8e 00 00       	call   0x40e20d
4053b8:	6a 08                	push   $0x8
4053ba:	59                   	pop    %ecx
4053bb:	33 c0                	xor    %eax,%eax
4053bd:	8d 7d dc             	lea    -0x24(%ebp),%edi
4053c0:	f3 ab                	rep stos %eax,%es:(%edi)
4053c2:	8d 45 fc             	lea    -0x4(%ebp),%eax
4053c5:	c7 45 e8 06 00 00 00 	movl   $0x6,-0x18(%ebp)
4053cc:	50                   	push   %eax
4053cd:	8d 45 dc             	lea    -0x24(%ebp),%eax
4053d0:	33 ff                	xor    %edi,%edi
4053d2:	50                   	push   %eax
4053d3:	6a 00                	push   $0x0
4053d5:	ff 75 08             	push   0x8(%ebp)