4050fc:	89 1d c0 18 41 00    	mov    %ebx,0x4118c0
405102:	a1 90 25 43 00       	mov    0x432590,%eax
405107:	85 c0                	test   %eax,%eax
405109:	0f 85 a3 01 00 00    	jne    0x4052b2
40510f:	8b cf                	mov    %edi,%ecx
405111:	e8 8c fd ff ff       	call   0x404ea2
405116:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
40511c:	50                   	push   %eax
40511d:	57                   	push   %edi
40511e:	ff 15 e0 31 43 00    	call   *0x4331e0
405124:	6a 40                	push   $0x40
405126:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40512c:	50                   	push   %eax
40512d:	6a 72                	push   $0x72
40512f:	ff 35 0c 19 41 00    	push   0x41190c
405135:	ff 15 20 33 43 00    	call   *0x433320
40513b:	8b 15 04 19 41 00    	mov    0x411904,%edx
405141:	8b cf                	mov    %edi,%ecx
405143:	e8 d1 fe ff ff       	call   0x405019
405148:	6a ec                	push   $0xffffffec
40514a:	57                   	push   %edi
40514b:	8b f0                	mov    %eax,%esi
40514d:	ff 15 fc 32 43 00    	call   *0x4332fc
405153:	33 db                	xor    %ebx,%ebx
405155:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
40515b:	53                   	push   %ebx
40515c:	ff 35 0c 19 41 00    	push   0x41190c
405162:	25 00 00 40 00       	and    $0x400000,%eax
405167:	53                   	push   %ebx
405168:	57                   	push   %edi
405169:	ff 35 00 19 41 00    	push   0x411900
40516f:	ff 35 04 19 41 00    	push   0x411904
405175:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40517b:	56                   	push   %esi
40517c:	68 00 02 c8 10       	push   $0x10c80200
405181:	51                   	push   %ecx
405182:	68 40 15 40 00       	push   $0x401540
405187:	50                   	push   %eax
405188:	ff 15 e8 31 43 00    	call   *0x4331e8
40518e:	8b f0                	mov    %eax,%esi
405190:	6a 20                	push   $0x20
405192:	89 b5 20 ff ff ff    	mov    %esi,-0xe0(%ebp)
405198:	ff 15 ec 31 43 00    	call   *0x4331ec
40519e:	6a 21                	push   $0x21
4051a0:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
4051a6:	ff 15 ec 31 43 00    	call   *0x4331ec
4051ac:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
4051b2:	85 f6                	test   %esi,%esi
4051b4:	0f 84 03 01 00 00    	je     0x4052bd
4051ba:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
4051c0:	89 35 90 25 43 00    	mov    %esi,0x432590
4051c6:	50                   	push   %eax
4051c7:	56                   	push   %esi
4051c8:	ff 15 f0 31 43 00    	call   *0x4331f0
4051ce:	57                   	push   %edi
4051cf:	ff 15 f0 32 43 00    	call   *0x4332f0
4051d5:	ff 35 7c 25 43 00    	push   0x43257c
4051db:	8b f8                	mov    %eax,%edi
4051dd:	57                   	push   %edi
4051de:	ff 15 ac 30 43 00    	call   *0x4330ac
4051e4:	8b f0                	mov    %eax,%esi
4051e6:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
4051ec:	50                   	push   %eax
4051ed:	57                   	push   %edi
4051ee:	ff 15 98 30 43 00    	call   *0x433098
4051f4:	56                   	push   %esi
4051f5:	57                   	push   %edi
4051f6:	ff 15 ac 30 43 00    	call   *0x4330ac
4051fc:	57                   	push   %edi
4051fd:	ff b5 24 ff ff ff    	push   -0xdc(%ebp)
405203:	ff 15 08 33 43 00    	call   *0x433308
405209:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
40520f:	2b 85 2c ff ff ff    	sub    -0xd4(%ebp),%eax
405215:	2b 85 28 ff ff ff    	sub    -0xd8(%ebp),%eax
40521b:	8b bd 1c ff ff ff    	mov    -0xe4(%ebp),%edi
405221:	8b b5 20 ff ff ff    	mov    -0xe0(%ebp),%esi
405227:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
40522d:	53                   	push   %ebx
40522e:	ff 35 0c 19 41 00    	push   0x41190c
405234:	68 2d 01 00 00       	push   $0x12d
405239:	56                   	push   %esi
40523a:	50                   	push   %eax
40523b:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40523e:	2b c8                	sub    %eax,%ecx
405240:	8b 85 28 ff ff ff    	mov    -0xd8(%ebp),%eax
405246:	03 85 2c ff ff ff    	add    -0xd4(%ebp),%eax
40524c:	51                   	push   %ecx
40524d:	50                   	push   %eax
40524e:	57                   	push   %edi
40524f:	68 01 00 30 50       	push   $0x50300001
405254:	68 5c 15 40 00       	push   $0x40155c
405259:	68 00 15 40 00       	push   $0x401500
40525e:	68 00 02 00 00       	push   $0x200
405263:	ff 15 e8 31 43 00    	call   *0x4331e8
405269:	68 e0 52 40 00       	push   $0x4052e0
40526e:	6a fc                	push   $0xfffffffc
405270:	50                   	push   %eax
405271:	a3 8c 25 43 00       	mov    %eax,0x43258c
405276:	ff 15 f8 32 43 00    	call   *0x4332f8
40527c:	50                   	push   %eax
40527d:	ff 15 7c 31 43 00    	call   *0x43317c
405283:	53                   	push   %ebx
405284:	53                   	push   %ebx
405285:	68 84 01 00 00       	push   $0x184
40528a:	ff 35 8c 25 43 00    	push   0x43258c
405290:	a3 bc 16 41 00       	mov    %eax,0x4116bc
405295:	ff 15 10 33 43 00    	call   *0x433310
40529b:	6a 01                	push   $0x1
40529d:	56                   	push   %esi
40529e:	ff 15 f4 31 43 00    	call   *0x4331f4
4052a4:	ff 35 8c 25 43 00    	push   0x43258c
4052aa:	ff 15 28 33 43 00    	call   *0x433328
4052b0:	eb 0b                	jmp    0x4052bd
4052b2:	33 db                	xor    %ebx,%ebx
4052b4:	53                   	push   %ebx
4052b5:	53                   	push   %ebx
4052b6:	50                   	push   %eax
4052b7:	ff 15 fc 31 43 00    	call   *0x4331fc
4052bd:	ff b5 18 ff ff ff    	push   -0xe8(%ebp)
4052c3:	8b 35 90 25 43 00    	mov    0x432590,%esi
4052c9:	ff 15 e4 31 43 00    	call   *0x4331e4
4052cf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4052d2:	8b c6                	mov    %esi,%eax
4052d4:	5f                   	pop    %edi
4052d5:	5e                   	pop    %esi
4052d6:	33 cd                	xor    %ebp,%ecx
4052d8:	5b                   	pop    %ebx
4052d9:	e8 52 b1 00 00       	call   0x410430
4052de:	c9                   	leave
4052df:	c3                   	ret
4052e0:	8b ff                	mov    %edi,%edi
4052e2:	55                   	push   %ebp
4052e3:	8b ec                	mov    %esp,%ebp
4052e5:	81 7d 0c 00 01 00 00 	cmpl   $0x100,0xc(%ebp)
4052ec:	75 32                	jne    0x405320
4052ee:	83 7d 10 1b          	cmpl   $0x1b,0x10(%ebp)
4052f2:	74 18                	je     0x40530c
4052f4:	83 7d 10 75          	cmpl   $0x75,0x10(%ebp)
4052f8:	75 26                	jne    0x405320
4052fa:	ff 35 14 19 43 00    	push   0x431914
405300:	ff 15 28 33 43 00    	call   *0x433328
405306:	33 c0                	xor    %eax,%eax
405308:	5d                   	pop    %ebp
405309:	c2 10 00             	ret    $0x10
40530c:	6a 00                	push   $0x0
40530e:	6a 00                	push   $0x0
405310:	6a 10                	push   $0x10
405312:	ff 35 90 25 43 00    	push   0x432590
405318:	ff 15 10 33 43 00    	call   *0x433310
40531e:	eb e6                	jmp    0x405306
405320:	ff 35 bc 16 41 00    	push   0x4116bc
405326:	ff 15 78 31 43 00    	call   *0x433178
40532c:	85 c0                	test   %eax,%eax
40532e:	74 d6                	je     0x405306
405330:	ff 75 14             	push   0x14(%ebp)
405333:	ff 75 10             	push   0x10(%ebp)
405336:	ff 75 0c             	push   0xc(%ebp)
405339:	ff 75 08             	push   0x8(%ebp)
40533c:	50                   	push   %eax
40533d:	ff 15 00 32 43 00    	call   *0x433200
405343:	eb c3                	jmp    0x405308
405345:	cc                   	int3
405346:	cc                   	int3
405347:	cc                   	int3
405348:	cc                   	int3
405349:	cc                   	int3
40534a:	cc                   	int3
40534b:	cc                   	int3
40534c:	cc                   	int3
40534d:	cc                   	int3
40534e:	cc                   	int3
40534f:	cc                   	int3
405350:	8b ff                	mov    %edi,%edi
405352:	55                   	push   %ebp
405353:	8b ec                	mov    %esp,%ebp
405355:	81 ec 94 00 00 00    	sub    $0x94,%esp
40535b:	a1 64 10 41 00       	mov    0x411064,%eax
405360:	33 c5                	xor    %ebp,%eax
405362:	89 45 fc             	mov    %eax,-0x4(%ebp)
405365:	8b 45 0c             	mov    0xc(%ebp),%eax
405368:	53                   	push   %ebx
405369:	56                   	push   %esi
40536a:	8b 75 08             	mov    0x8(%ebp),%esi
40536d:	57                   	push   %edi
40536e:	83 e8 01             	sub    $0x1,%eax
405371:	0f 84 cd 01 00 00    	je     0x405544
405377:	83 e8 01             	sub    $0x1,%eax
40537a:	0f 84 81 01 00 00    	je     0x405501
405380:	83 e8 05             	sub    $0x5,%eax
405383:	0f 84 6a 01 00 00    	je     0x4054f3
405389:	83 e8 08             	sub    $0x8,%eax
40538c:	0f 84 db 00 00 00    	je     0x40546d
405392:	83 e8 01             	sub    $0x1,%eax
405395:	74 44                	je     0x4053db
405397:	2d 01 01 00 00       	sub    $0x101,%eax
40539c:	0f 85 94 01 00 00    	jne    0x405536
4053a2:	b8 2d 01 00 00       	mov    $0x12d,%eax
4053a7:	66 39 45 10          	cmp    %ax,0x10(%ebp)
4053ab:	75 17                	jne    0x4053c4
4053ad:	8b 45 10             	mov    0x10(%ebp),%eax
4053b0:	c1 e8 10             	shr    $0x10,%eax
4053b3:	66 83 f8 01          	cmp    $0x1,%ax
4053b7:	75 0b                	jne    0x4053c4
4053b9:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
4053bf:	e8 76 81 00 00       	call   0x40d53a
4053c4:	ff 75 14             	push   0x14(%ebp)
4053c7:	ff 75 10             	push   0x10(%ebp)
4053ca:	68 11 01 00 00       	push   $0x111
4053cf:	56                   	push   %esi
4053d0:	ff 15 08 32 43 00    	call   *0x433208
4053d6:	e9 84 01 00 00       	jmp    0x40555f
4053db:	33 d2                	xor    %edx,%edx
4053dd:	52                   	push   %edx
4053de:	52                   	push   %edx
4053df:	68 4e 01 00 00       	push   $0x14e
4053e4:	68 ca 00 00 00       	push   $0xca
4053e9:	ff 35 10 19 43 00    	push   0x431910
4053ef:	ff 15 14 33 43 00    	call   *0x433314
4053f5:	50                   	push   %eax
4053f6:	ff 15 10 33 43 00    	call   *0x433310
4053fc:	6a 40                	push   $0x40
4053fe:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
405404:	50                   	push   %eax
405405:	68 95 01 00 00       	push   $0x195
40540a:	ff 35 0c 19 41 00    	push   0x41190c
405410:	ff 15 20 33 43 00    	call   *0x433320
405416:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40541c:	bb 85 00 00 00       	mov    $0x85,%ebx
405421:	50                   	push   %eax
405422:	53                   	push   %ebx
405423:	ff 35 10 19 43 00    	push   0x431910
405429:	ff 15 10 32 43 00    	call   *0x433210
40542f:	33 ff                	xor    %edi,%edi
405431:	47                   	inc    %edi
405432:	57                   	push   %edi
405433:	53                   	push   %ebx
405434:	ff 35 10 19 43 00    	push   0x431910
40543a:	ff 15 14 33 43 00    	call   *0x433314
405440:	50                   	push   %eax
405441:	ff 15 14 32 43 00    	call   *0x433214
405447:	53                   	push   %ebx
405448:	ff 35 10 19 43 00    	push   0x431910
40544e:	89 3d 78 26 43 00    	mov    %edi,0x432678
405454:	ff 15 14 33 43 00    	call   *0x433314
40545a:	50                   	push   %eax
40545b:	ff 15 28 33 43 00    	call   *0x433328
405461:	56                   	push   %esi
405462:	ff 15 00 33 43 00    	call   *0x433300
405468:	e9 f0 00 00 00       	jmp    0x40555d
40546d:	8d 45 b8             	lea    -0x48(%ebp),%eax
405470:	50                   	push   %eax
405471:	56                   	push   %esi
405472:	ff 15 ec 32 43 00    	call   *0x4332ec
405478:	ff 35 7c 25 43 00    	push   0x43257c
40547e:	8b 7d b8             	mov    -0x48(%ebp),%edi
405481:	57                   	push   %edi
405482:	ff 15 ac 30 43 00    	call   *0x4330ac
405488:	6a 0f                	push   $0xf
40548a:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
405490:	ff 15 0c 32 43 00    	call   *0x43320c
405496:	50                   	push   %eax
405497:	57                   	push   %edi
405498:	ff 15 94 30 43 00    	call   *0x433094
40549e:	8b 1d c0 18 41 00    	mov    0x4118c0,%ebx
4054a4:	33 d2                	xor    %edx,%edx
4054a6:	8b cb                	mov    %ebx,%ecx
4054a8:	8d 41 02             	lea    0x2(%ecx),%eax
4054ab:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
4054b1:	66 8b 01             	mov    (%ecx),%ax
4054b4:	83 c1 02             	add    $0x2,%ecx
4054b7:	66 3b c2             	cmp    %dx,%ax
4054ba:	75 f5                	jne    0x4054b1
4054bc:	2b 8d 74 ff ff ff    	sub    -0x8c(%ebp),%ecx
4054c2:	d1 f9                	sar    $1,%ecx
4054c4:	51                   	push   %ecx
4054c5:	53                   	push   %ebx
4054c6:	ff 35 e0 18 41 00    	push   0x4118e0
4054cc:	ff 35 e4 18 41 00    	push   0x4118e4
4054d2:	57                   	push   %edi
4054d3:	ff 15 90 30 43 00    	call   *0x433090
4054d9:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
4054df:	57                   	push   %edi
4054e0:	ff 15 ac 30 43 00    	call   *0x4330ac
4054e6:	8d 45 b8             	lea    -0x48(%ebp),%eax
4054e9:	50                   	push   %eax
4054ea:	56                   	push   %esi
4054eb:	ff 15 f4 32 43 00    	call   *0x4332f4
4054f1:	eb 6a                	jmp    0x40555d
4054f3:	ff 35 8c 25 43 00    	push   0x43258c
4054f9:	ff 15 28 33 43 00    	call   *0x433328
4054ff:	eb 5c                	jmp    0x40555d
405501:	6a 01                	push   $0x1
405503:	68 82 00 00 00       	push   $0x82
405508:	ff 35 10 19 43 00    	push   0x431910
40550e:	ff 15 14 33 43 00    	call   *0x433314
405514:	50                   	push   %eax
405515:	ff 15 14 32 43 00    	call   *0x433214
40551b:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
405521:	33 d2                	xor    %edx,%edx
405523:	e8 63 8f 00 00       	call   0x40e48b
405528:	33 d2                	xor    %edx,%edx
40552a:	89 15 90 25 43 00    	mov    %edx,0x432590
405530:	89 15 8c 25 43 00    	mov    %edx,0x43258c
405536:	ff 75 14             	push   0x14(%ebp)
405539:	ff 75 10             	push   0x10(%ebp)
40553c:	ff 75 0c             	push   0xc(%ebp)
40553f:	e9 8b fe ff ff       	jmp    0x4053cf
405544:	6a 00                	push   $0x0
405546:	ff 35 04 19 41 00    	push   0x411904
40554c:	68 94 01 00 00       	push   $0x194
405551:	ff 35 8c 25 43 00    	push   0x43258c
405557:	ff 15 10 33 43 00    	call   *0x433310
40555d:	33 c0                	xor    %eax,%eax
40555f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405562:	5f                   	pop    %edi
405563:	5e                   	pop    %esi
405564:	33 cd                	xor    %ebp,%ecx
405566:	5b                   	pop    %ebx
405567:	e8 c4 ae 00 00       	call   0x410430
40556c:	c9                   	leave
40556d:	c2 10 00             	ret    $0x10
405570:	8b ff                	mov    %edi,%edi
405572:	55                   	push   %ebp
405573:	8b ec                	mov    %esp,%ebp
405575:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40557b:	a1 64 10 41 00       	mov    0x411064,%eax
405580:	33 c5                	xor    %ebp,%eax
405582:	89 45 fc             	mov    %eax,-0x4(%ebp)
405585:	a1 8c 25 43 00       	mov    0x43258c,%eax
40558a:	53                   	push   %ebx
40558b:	8b 5a 08             	mov    0x8(%edx),%ebx
40558e:	56                   	push   %esi
40558f:	57                   	push   %edi
405590:	0f b7 7b 0a          	movzwl 0xa(%ebx),%edi
405594:	8d 73 10             	lea    0x10(%ebx),%esi
405597:	85 c0                	test   %eax,%eax
405599:	75 14                	jne    0x4055af
40559b:	8b 53 04             	mov    0x4(%ebx),%edx
40559e:	03 d3                	add    %ebx,%edx
4055a0:	e8 fb fa ff ff       	call   0x4050a0
4055a5:	85 c0                	test   %eax,%eax
4055a7:	0f 84 b2 00 00 00    	je     0x40565f
4055ad:	eb 10                	jmp    0x4055bf
4055af:	6a 00                	push   $0x0
4055b1:	6a 00                	push   $0x0
4055b3:	68 84 01 00 00       	push   $0x184
4055b8:	50                   	push   %eax
4055b9:	ff 15 10 33 43 00    	call   *0x433310
4055bf:	a1 8c 25 43 00       	mov    0x43258c,%eax
4055c4:	85 c0                	test   %eax,%eax