4050f7:	33 ff                	xor    %edi,%edi
4050f9:	50                   	push   %eax
4050fa:	68 be 0b 00 00       	push   $0xbbe
4050ff:	57                   	push   %edi
405100:	ff 15 64 81 40 00    	call   *0x408164
405106:	85 c0                	test   %eax,%eax
405108:	0f 84 e2 00 00 00    	je     0x4051f0
40510e:	6a 50                	push   $0x50
405110:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
405116:	50                   	push   %eax
405117:	68 bf 0b 00 00       	push   $0xbbf
40511c:	57                   	push   %edi
40511d:	ff 15 64 81 40 00    	call   *0x408164
405123:	85 c0                	test   %eax,%eax
405125:	0f 84 c5 00 00 00    	je     0x4051f0
40512b:	6a 50                	push   $0x50
40512d:	8d 85 1c fe ff ff    	lea    -0x1e4(%ebp),%eax
405133:	50                   	push   %eax
405134:	68 c0 0b 00 00       	push   $0xbc0
405139:	57                   	push   %edi
40513a:	ff 15 64 81 40 00    	call   *0x408164
405140:	85 c0                	test   %eax,%eax
405142:	0f 84 a8 00 00 00    	je     0x4051f0
405148:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40514e:	c7 85 08 fe ff ff 03 	movl   $0x3,-0x1f8(%ebp)
405155:	00 00 00
405158:	89 85 14 fe ff ff    	mov    %eax,-0x1ec(%ebp)
40515e:	33 d2                	xor    %edx,%edx
405160:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
405166:	89 bd 0c fe ff ff    	mov    %edi,-0x1f4(%ebp)
40516c:	89 85 10 fe ff ff    	mov    %eax,-0x1f0(%ebp)
405172:	8d 85 1c fe ff ff    	lea    -0x1e4(%ebp),%eax
405178:	89 85 18 fe ff ff    	mov    %eax,-0x1e8(%ebp)
40517e:	8d 85 04 fe ff ff    	lea    -0x1fc(%ebp),%eax
405184:	50                   	push   %eax
405185:	68 f0 4c 40 00       	push   $0x404cf0
40518a:	56                   	push   %esi
40518b:	ff 75 14             	push   0x14(%ebp)
40518e:	89 bd 04 fe ff ff    	mov    %edi,-0x1fc(%ebp)
405194:	6a 02                	push   $0x2
405196:	e8 44 cf ff ff       	call   0x4020df
40519b:	8b f0                	mov    %eax,%esi
40519d:	85 f6                	test   %esi,%esi
40519f:	75 4b                	jne    0x4051ec
4051a1:	8b 8d 04 fe ff ff    	mov    -0x1fc(%ebp),%ecx
4051a7:	85 c9                	test   %ecx,%ecx
4051a9:	75 17                	jne    0x4051c2
4051ab:	68 f3 eb 00 00       	push   $0xebf3
4051b0:	6a 01                	push   $0x1
4051b2:	e8 c2 1c 00 00       	call   0x406e79
4051b7:	59                   	pop    %ecx
4051b8:	50                   	push   %eax
4051b9:	e8 1f c8 ff ff       	call   0x4019dd
4051be:	59                   	pop    %ecx
4051bf:	59                   	pop    %ecx
4051c0:	eb 2a                	jmp    0x4051ec
4051c2:	51                   	push   %ecx
4051c3:	39 bd 0c fe ff ff    	cmp    %edi,-0x1f4(%ebp)
4051c9:	75 09                	jne    0x4051d4
4051cb:	68 20 ed 00 00       	push   $0xed20
4051d0:	6a 01                	push   $0x1
4051d2:	eb 09                	jmp    0x4051dd
4051d4:	33 f6                	xor    %esi,%esi
4051d6:	68 1f ed 00 00       	push   $0xed1f
4051db:	46                   	inc    %esi
4051dc:	56                   	push   %esi
4051dd:	e8 97 1c 00 00       	call   0x406e79
4051e2:	59                   	pop    %ecx
4051e3:	50                   	push   %eax
4051e4:	e8 f4 c7 ff ff       	call   0x4019dd
4051e9:	83 c4 0c             	add    $0xc,%esp
4051ec:	8b c6                	mov    %esi,%eax
4051ee:	eb 07                	jmp    0x4051f7
4051f0:	6a 02                	push   $0x2
4051f2:	eb 02                	jmp    0x4051f6
4051f4:	6a 03                	push   $0x3
4051f6:	58                   	pop    %eax
4051f7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4051fa:	5f                   	pop    %edi
4051fb:	33 cd                	xor    %ebp,%ecx
4051fd:	5e                   	pop    %esi
4051fe:	e8 dd 16 00 00       	call   0x4068e0
405203:	c9                   	leave
405204:	c2 14 00             	ret    $0x14
405207:	cc                   	int3
405208:	cc                   	int3
405209:	cc                   	int3
40520a:	cc                   	int3
40520b:	cc                   	int3
40520c:	cc                   	int3
40520d:	cc                   	int3
40520e:	cc                   	int3
40520f:	cc                   	int3
405210:	8b ff                	mov    %edi,%edi
405212:	55                   	push   %ebp
405213:	8b ec                	mov    %esp,%ebp
405215:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
405219:	74 05                	je     0x405220
40521b:	6a 03                	push   $0x3
40521d:	58                   	pop    %eax
40521e:	eb 24                	jmp    0x405244
405220:	68 82 ed 00 00       	push   $0xed82
405225:	6a 01                	push   $0x1
405227:	e8 4d 1c 00 00       	call   0x406e79
40522c:	59                   	pop    %ecx
40522d:	50                   	push   %eax
40522e:	e8 aa c7 ff ff       	call   0x4019dd
405233:	59                   	pop    %ecx
405234:	59                   	pop    %ecx
405235:	e8 84 c8 ff ff       	call   0x401abe
40523a:	f7 d8                	neg    %eax
40523c:	1b c0                	sbb    %eax,%eax
40523e:	83 e0 fe             	and    $0xfffffffe,%eax
405241:	83 c0 02             	add    $0x2,%eax
405244:	5d                   	pop    %ebp
405245:	c2 14 00             	ret    $0x14
405248:	cc                   	int3
405249:	cc                   	int3
40524a:	cc                   	int3
40524b:	cc                   	int3
40524c:	cc                   	int3
40524d:	cc                   	int3
40524e:	cc                   	int3
40524f:	cc                   	int3
405250:	8b ff                	mov    %edi,%edi
405252:	55                   	push   %ebp
405253:	8b ec                	mov    %esp,%ebp
405255:	81 ec 14 02 00 00    	sub    $0x214,%esp
40525b:	a1 b4 71 40 00       	mov    0x4071b4,%eax
405260:	33 c5                	xor    %ebp,%eax
405262:	89 45 fc             	mov    %eax,-0x4(%ebp)
405265:	8b 45 18             	mov    0x18(%ebp),%eax
405268:	33 d2                	xor    %edx,%edx
40526a:	53                   	push   %ebx
40526b:	56                   	push   %esi
40526c:	6a 02                	push   $0x2
40526e:	5b                   	pop    %ebx
40526f:	89 95 ec fd ff ff    	mov    %edx,-0x214(%ebp)
405275:	39 55 0c             	cmp    %edx,0xc(%ebp)
405278:	0f 85 fe 00 00 00    	jne    0x40537c
40527e:	39 5d 14             	cmp    %ebx,0x14(%ebp)
405281:	0f 8c f5 00 00 00    	jl     0x40537c
405287:	8b 08                	mov    (%eax),%ecx
405289:	66 39 11             	cmp    %dx,(%ecx)
40528c:	0f 84 ea 00 00 00    	je     0x40537c
405292:	8b 40 04             	mov    0x4(%eax),%eax
405295:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40529b:	66 39 10             	cmp    %dx,(%eax)
40529e:	0f 84 d8 00 00 00    	je     0x40537c
4052a4:	52                   	push   %edx
4052a5:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4052ab:	be 04 01 00 00       	mov    $0x104,%esi
4052b0:	50                   	push   %eax
4052b1:	56                   	push   %esi
4052b2:	51                   	push   %ecx
4052b3:	ff 15 5c 80 40 00    	call   *0x40805c
4052b9:	3b c6                	cmp    %esi,%eax
4052bb:	0f 83 b7 00 00 00    	jae    0x405378
4052c1:	85 c0                	test   %eax,%eax
4052c3:	0f 84 af 00 00 00    	je     0x405378
4052c9:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4052cf:	50                   	push   %eax
4052d0:	ff 15 68 80 40 00    	call   *0x408068
4052d6:	83 f8 ff             	cmp    $0xffffffff,%eax
4052d9:	0f 84 99 00 00 00    	je     0x405378
4052df:	68 a0 13 40 00       	push   $0x4013a0
4052e4:	ff 15 48 80 40 00    	call   *0x408048
4052ea:	8b f0                	mov    %eax,%esi
4052ec:	85 f6                	test   %esi,%esi
4052ee:	0f 84 84 00 00 00    	je     0x405378
4052f4:	57                   	push   %edi
4052f5:	68 b8 13 40 00       	push   $0x4013b8
4052fa:	56                   	push   %esi
4052fb:	ff 15 4c 80 40 00    	call   *0x40804c
405301:	8b f8                	mov    %eax,%edi
405303:	85 ff                	test   %edi,%edi
405305:	74 69                	je     0x405370
405307:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40530d:	50                   	push   %eax
40530e:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
405314:	68 ae ee 00 00       	push   $0xeeae
405319:	6a 01                	push   $0x1
40531b:	e8 59 1b 00 00       	call   0x406e79
405320:	59                   	pop    %ecx
405321:	50                   	push   %eax
405322:	e8 b6 c6 ff ff       	call   0x4019dd
405327:	83 c4 10             	add    $0x10,%esp
40532a:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
405330:	8b cf                	mov    %edi,%ecx
405332:	50                   	push   %eax
405333:	6a 01                	push   $0x1
405335:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40533b:	50                   	push   %eax
40533c:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
405342:	6a 00                	push   $0x0
405344:	ff 15 ec 81 40 00    	call   *0x4081ec
40534a:	ff d7                	call   *%edi
40534c:	85 c0                	test   %eax,%eax
40534e:	74 20                	je     0x405370
405350:	68 b2 ee 00 00       	push   $0xeeb2
405355:	6a 01                	push   $0x1
405357:	e8 1d 1b 00 00       	call   0x406e79
40535c:	59                   	pop    %ecx
40535d:	50                   	push   %eax
40535e:	e8 7a c6 ff ff       	call   0x4019dd
405363:	33 db                	xor    %ebx,%ebx
405365:	39 9d ec fd ff ff    	cmp    %ebx,-0x214(%ebp)
40536b:	59                   	pop    %ecx
40536c:	59                   	pop    %ecx
40536d:	0f 95 c3             	setne  %bl
405370:	56                   	push   %esi
405371:	ff 15 50 80 40 00    	call   *0x408050
405377:	5f                   	pop    %edi
405378:	8b c3                	mov    %ebx,%eax
40537a:	eb 03                	jmp    0x40537f
40537c:	6a 03                	push   $0x3
40537e:	58                   	pop    %eax
40537f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405382:	5e                   	pop    %esi
405383:	33 cd                	xor    %ebp,%ecx
405385:	5b                   	pop    %ebx
405386:	e8 55 15 00 00       	call   0x4068e0
40538b:	c9                   	leave
40538c:	c2 14 00             	ret    $0x14
40538f:	cc                   	int3
405390:	cc                   	int3
405391:	cc                   	int3
405392:	cc                   	int3
405393:	cc                   	int3
405394:	cc                   	int3
405395:	cc                   	int3
405396:	cc                   	int3
405397:	cc                   	int3
405398:	cc                   	int3
405399:	cc                   	int3
40539a:	cc                   	int3
40539b:	cc                   	int3
40539c:	cc                   	int3
40539d:	cc                   	int3
40539e:	cc                   	int3
40539f:	cc                   	int3
4053a0:	8b ff                	mov    %edi,%edi
4053a2:	55                   	push   %ebp
4053a3:	8b ec                	mov    %esp,%ebp
4053a5:	81 ec 84 04 00 00    	sub    $0x484,%esp
4053ab:	a1 b4 71 40 00       	mov    0x4071b4,%eax
4053b0:	33 c5                	xor    %ebp,%eax
4053b2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4053b5:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4053b9:	53                   	push   %ebx
4053ba:	8b 5d 18             	mov    0x18(%ebp),%ebx
4053bd:	56                   	push   %esi
4053be:	57                   	push   %edi
4053bf:	6a 02                	push   $0x2
4053c1:	5e                   	pop    %esi
4053c2:	0f 85 84 01 00 00    	jne    0x40554c
4053c8:	39 75 14             	cmp    %esi,0x14(%ebp)
4053cb:	0f 8c 7b 01 00 00    	jl     0x40554c
4053d1:	8b 03                	mov    (%ebx),%eax
4053d3:	33 c9                	xor    %ecx,%ecx
4053d5:	89 8d 7c fb ff ff    	mov    %ecx,-0x484(%ebp)
4053db:	66 39 08             	cmp    %cx,(%eax)
4053de:	0f 84 68 01 00 00    	je     0x40554c
4053e4:	8b 7b 04             	mov    0x4(%ebx),%edi
4053e7:	66 39 0f             	cmp    %cx,(%edi)
4053ea:	0f 84 5c 01 00 00    	je     0x40554c
4053f0:	51                   	push   %ecx
4053f1:	8d 8d ac fb ff ff    	lea    -0x454(%ebp),%ecx
4053f7:	51                   	push   %ecx
4053f8:	68 04 01 00 00       	push   $0x104
4053fd:	50                   	push   %eax
4053fe:	ff 15 5c 80 40 00    	call   *0x40805c
405404:	3d 04 01 00 00       	cmp    $0x104,%eax
405409:	72 07                	jb     0x405412
40540b:	8b c6                	mov    %esi,%eax
40540d:	e9 3d 01 00 00       	jmp    0x40554f
405412:	33 c0                	xor    %eax,%eax
405414:	68 08 02 00 00       	push   $0x208
405419:	50                   	push   %eax
40541a:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
405420:	50                   	push   %eax
405421:	e8 ab 1a 00 00       	call   0x406ed1
405426:	8d 8d b4 fd ff ff    	lea    -0x24c(%ebp),%ecx
40542c:	83 c4 0c             	add    $0xc,%esp
40542f:	8b c1                	mov    %ecx,%eax
405431:	ba 00 01 00 00       	mov    $0x100,%edx
405436:	2b f8                	sub    %eax,%edi
405438:	8d 82 fe fe ff 7f    	lea    0x7ffffefe(%edx),%eax
40543e:	85 c0                	test   %eax,%eax
405440:	74 17                	je     0x405459
405442:	0f b7 04 0f          	movzwl (%edi,%ecx,1),%eax
405446:	66 85 c0             	test   %ax,%ax
405449:	74 0a                	je     0x405455
40544b:	66 89 01             	mov    %ax,(%ecx)
40544e:	03 ce                	add    %esi,%ecx
405450:	83 ea 01             	sub    $0x1,%edx
405453:	75 e3                	jne    0x405438
405455:	85 d2                	test   %edx,%edx
405457:	74 b2                	je     0x40540b
405459:	33 c0                	xor    %eax,%eax
40545b:	33 ff                	xor    %edi,%edi
40545d:	57                   	push   %edi
40545e:	66 89 01             	mov    %ax,(%ecx)
405461:	8d 45 bc             	lea    -0x44(%ebp),%eax
405464:	6a 20                	push   $0x20
405466:	50                   	push   %eax
405467:	8d 85 9c fb ff ff    	lea    -0x464(%ebp),%eax
40546d:	50                   	push   %eax
40546e:	8d 85 ac fb ff ff    	lea    -0x454(%ebp),%eax
405474:	50                   	push   %eax
405475:	ff 15 a8 80 40 00    	call   *0x4080a8
40547b:	85 c0                	test   %eax,%eax
40547d:	74 8c                	je     0x40540b
40547f:	57                   	push   %edi
405480:	8d 85 9c fb ff ff    	lea    -0x464(%ebp),%eax
405486:	50                   	push   %eax
405487:	ff 15 a4 80 40 00    	call   *0x4080a4
40548d:	8b f8                	mov    %eax,%edi
40548f:	83 ff ff             	cmp    $0xffffffff,%edi
405492:	0f 84 73 ff ff ff    	je     0x40540b
405498:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
40549e:	c7 85 80 fb ff ff 1c 	movl   $0x1c,-0x480(%ebp)
4054a5:	00 00 00
4054a8:	50                   	push   %eax
4054a9:	6a 01                	push   $0x1
4054ab:	33 c0                	xor    %eax,%eax
4054ad:	50                   	push   %eax
4054ae:	50                   	push   %eax
4054af:	8d 85 9c fb ff ff    	lea    -0x464(%ebp),%eax
4054b5:	50                   	push   %eax
4054b6:	8d 45 bc             	lea    -0x44(%ebp),%eax
4054b9:	50                   	push   %eax
4054ba:	57                   	push   %edi
4054bb:	ff 15 c8 80 40 00    	call   *0x4080c8
4054c1:	85 c0                	test   %eax,%eax
4054c3:	74 7b                	je     0x405540
4054c5:	8d 8d b4 fd ff ff    	lea    -0x24c(%ebp),%ecx
4054cb:	8d 51 02             	lea    0x2(%ecx),%edx
4054ce:	66 8b 01             	mov    (%ecx),%ax
4054d1:	03 ce                	add    %esi,%ecx
4054d3:	66 3b 85 7c fb ff ff 	cmp    -0x484(%ebp),%ax
4054da:	75 f2                	jne    0x4054ce
4054dc:	2b ca                	sub    %edx,%ecx
4054de:	d1 f9                	sar    $1,%ecx
4054e0:	8d 04 4d 04 00 00 00 	lea    0x4(,%ecx,2),%eax
4054e7:	50                   	push   %eax
4054e8:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
4054ee:	50                   	push   %eax
4054ef:	6a 01                	push   $0x1
4054f1:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax