405329:	eb c3                	jmp    0x4052ee
40532b:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
405331:	3b c3                	cmp    %ebx,%eax
405333:	75 b3                	jne    0x4052e8
405335:	6a fe                	push   $0xfffffffe
405337:	5e                   	pop    %esi
405338:	33 c0                	xor    %eax,%eax
40533a:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
40533f:	eb ad                	jmp    0x4052ee
405341:	8b ff                	mov    %edi,%edi
405343:	55                   	push   %ebp
405344:	8b ec                	mov    %esp,%ebp
405346:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40534a:	75 15                	jne    0x405361
40534c:	e8 b6 29 00 00       	call   0x407d07
405351:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405357:	e8 d2 28 00 00       	call   0x407c2e
40535c:	83 c8 ff             	or     $0xffffffff,%eax
40535f:	5d                   	pop    %ebp
405360:	c3                   	ret
405361:	56                   	push   %esi
405362:	8b 75 10             	mov    0x10(%ebp),%esi
405365:	85 f6                	test   %esi,%esi
405367:	74 3c                	je     0x4053a5
405369:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40536d:	76 36                	jbe    0x4053a5
40536f:	ff 75 20             	push   0x20(%ebp)
405372:	ff 75 1c             	push   0x1c(%ebp)
405375:	ff 75 18             	push   0x18(%ebp)
405378:	ff 75 14             	push   0x14(%ebp)
40537b:	56                   	push   %esi
40537c:	ff 75 0c             	push   0xc(%ebp)
40537f:	ff 75 08             	push   0x8(%ebp)
405382:	e8 b0 fc ff ff       	call   0x405037
405387:	83 c4 1c             	add    $0x1c,%esp
40538a:	85 c0                	test   %eax,%eax
40538c:	79 05                	jns    0x405393
40538e:	33 c9                	xor    %ecx,%ecx
405390:	66 89 0e             	mov    %cx,(%esi)
405393:	83 f8 fe             	cmp    $0xfffffffe,%eax
405396:	75 20                	jne    0x4053b8
405398:	e8 6a 29 00 00       	call   0x407d07
40539d:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4053a3:	eb 0b                	jmp    0x4053b0
4053a5:	e8 5d 29 00 00       	call   0x407d07
4053aa:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4053b0:	e8 79 28 00 00       	call   0x407c2e
4053b5:	83 c8 ff             	or     $0xffffffff,%eax
4053b8:	5e                   	pop    %esi
4053b9:	5d                   	pop    %ebp
4053ba:	c3                   	ret
4053bb:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
4053c2:	75 06                	jne    0x4053ca
4053c4:	b8 00 02 00 00       	mov    $0x200,%eax
4053c9:	c3                   	ret
4053ca:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
4053d0:	d1 e8                	shr    $1,%eax
4053d2:	c3                   	ret
4053d3:	8b ff                	mov    %edi,%edi
4053d5:	55                   	push   %ebp
4053d6:	8b ec                	mov    %esp,%ebp
4053d8:	51                   	push   %ecx
4053d9:	83 c8 ff             	or     $0xffffffff,%eax
4053dc:	33 d2                	xor    %edx,%edx
4053de:	56                   	push   %esi
4053df:	8b 75 08             	mov    0x8(%ebp),%esi
4053e2:	f7 f6                	div    %esi
4053e4:	57                   	push   %edi
4053e5:	83 e0 fe             	and    $0xfffffffe,%eax
4053e8:	8b f9                	mov    %ecx,%edi
4053ea:	83 f8 02             	cmp    $0x2,%eax
4053ed:	73 0f                	jae    0x4053fe
4053ef:	e8 13 29 00 00       	call   0x407d07
4053f4:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4053fa:	32 c0                	xor    %al,%al
4053fc:	eb 53                	jmp    0x405451
4053fe:	53                   	push   %ebx
4053ff:	33 db                	xor    %ebx,%ebx
405401:	03 f6                	add    %esi,%esi
405403:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
405409:	75 08                	jne    0x405413
40540b:	81 fe 00 04 00 00    	cmp    $0x400,%esi
405411:	76 08                	jbe    0x40541b
405413:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
405419:	77 04                	ja     0x40541f
40541b:	b0 01                	mov    $0x1,%al
40541d:	eb 31                	jmp    0x405450
40541f:	56                   	push   %esi
405420:	e8 39 44 00 00       	call   0x40985e
405425:	89 45 fc             	mov    %eax,-0x4(%ebp)
405428:	59                   	pop    %ecx
405429:	85 c0                	test   %eax,%eax
40542b:	74 1a                	je     0x405447
40542d:	8d 45 fc             	lea    -0x4(%ebp),%eax
405430:	50                   	push   %eax
405431:	8d 8f 04 04 00 00    	lea    0x404(%edi),%ecx
405437:	e8 12 03 00 00       	call   0x40574e
40543c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40543f:	b3 01                	mov    $0x1,%bl
405441:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
405447:	50                   	push   %eax
405448:	e8 d7 43 00 00       	call   0x409824
40544d:	59                   	pop    %ecx
40544e:	8a c3                	mov    %bl,%al
405450:	5b                   	pop    %ebx
405451:	5f                   	pop    %edi
405452:	5e                   	pop    %esi
405453:	8b e5                	mov    %ebp,%esp
405455:	5d                   	pop    %ebp
405456:	c2 04 00             	ret    $0x4
405459:	8b ff                	mov    %edi,%edi
40545b:	55                   	push   %ebp
40545c:	8b ec                	mov    %esp,%ebp
40545e:	8b 45 14             	mov    0x14(%ebp),%eax
405461:	48                   	dec    %eax
405462:	83 e8 01             	sub    $0x1,%eax
405465:	74 3d                	je     0x4054a4
405467:	83 e8 01             	sub    $0x1,%eax
40546a:	74 34                	je     0x4054a0
40546c:	83 e8 09             	sub    $0x9,%eax
40546f:	74 2f                	je     0x4054a0
405471:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
405475:	74 29                	je     0x4054a0
405477:	8b 45 08             	mov    0x8(%ebp),%eax
40547a:	33 c9                	xor    %ecx,%ecx
40547c:	83 e0 04             	and    $0x4,%eax
40547f:	b2 01                	mov    $0x1,%dl
405481:	0b c1                	or     %ecx,%eax
405483:	75 02                	jne    0x405487
405485:	8a d1                	mov    %cl,%dl
405487:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
40548c:	74 07                	je     0x405495
40548e:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
405493:	75 02                	jne    0x405497
405495:	b1 01                	mov    $0x1,%cl
405497:	33 c0                	xor    %eax,%eax
405499:	3a d1                	cmp    %cl,%dl
40549b:	0f 94 c0             	sete   %al
40549e:	5d                   	pop    %ebp
40549f:	c3                   	ret
4054a0:	b0 01                	mov    $0x1,%al
4054a2:	5d                   	pop    %ebp
4054a3:	c3                   	ret
4054a4:	32 c0                	xor    %al,%al
4054a6:	5d                   	pop    %ebp
4054a7:	c3                   	ret
4054a8:	8b ff                	mov    %edi,%edi
4054aa:	56                   	push   %esi
4054ab:	8b f1                	mov    %ecx,%esi
4054ad:	57                   	push   %edi
4054ae:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
4054b4:	e8 02 ff ff ff       	call   0x4053bb
4054b9:	85 ff                	test   %edi,%edi
4054bb:	75 04                	jne    0x4054c1
4054bd:	03 c6                	add    %esi,%eax
4054bf:	eb 02                	jmp    0x4054c3
4054c1:	03 c7                	add    %edi,%eax
4054c3:	5f                   	pop    %edi
4054c4:	5e                   	pop    %esi
4054c5:	c3                   	ret
4054c6:	8b ff                	mov    %edi,%edi
4054c8:	55                   	push   %ebp
4054c9:	8b ec                	mov    %esp,%ebp
4054cb:	53                   	push   %ebx
4054cc:	56                   	push   %esi
4054cd:	8b f1                	mov    %ecx,%esi
4054cf:	57                   	push   %edi
4054d0:	8d 4e 40             	lea    0x40(%esi),%ecx
4054d3:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
4054d9:	85 ff                	test   %edi,%edi
4054db:	75 02                	jne    0x4054df
4054dd:	8b f9                	mov    %ecx,%edi
4054df:	e8 d7 fe ff ff       	call   0x4053bb
4054e4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4054e7:	48                   	dec    %eax
4054e8:	03 f8                	add    %eax,%edi
4054ea:	89 7e 34             	mov    %edi,0x34(%esi)
4054ed:	8b 4e 28             	mov    0x28(%esi),%ecx
4054f0:	85 c9                	test   %ecx,%ecx
4054f2:	7f 04                	jg     0x4054f8
4054f4:	85 db                	test   %ebx,%ebx
4054f6:	74 30                	je     0x405528
4054f8:	33 d2                	xor    %edx,%edx
4054fa:	8b c3                	mov    %ebx,%eax
4054fc:	f7 75 0c             	divl   0xc(%ebp)
4054ff:	49                   	dec    %ecx
405500:	80 c2 30             	add    $0x30,%dl
405503:	89 4e 28             	mov    %ecx,0x28(%esi)
405506:	8b d8                	mov    %eax,%ebx
405508:	80 fa 39             	cmp    $0x39,%dl
40550b:	7e 11                	jle    0x40551e
40550d:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
405511:	0f 94 c0             	sete   %al
405514:	fe c8                	dec    %al
405516:	24 e0                	and    $0xe0,%al
405518:	04 61                	add    $0x61,%al
40551a:	2c 3a                	sub    $0x3a,%al
40551c:	02 d0                	add    %al,%dl
40551e:	8b 46 34             	mov    0x34(%esi),%eax
405521:	88 10                	mov    %dl,(%eax)
405523:	ff 4e 34             	decl   0x34(%esi)
405526:	eb c5                	jmp    0x4054ed
405528:	8b 46 34             	mov    0x34(%esi),%eax
40552b:	2b f8                	sub    %eax,%edi
40552d:	89 7e 38             	mov    %edi,0x38(%esi)
405530:	40                   	inc    %eax
405531:	5f                   	pop    %edi
405532:	89 46 34             	mov    %eax,0x34(%esi)
405535:	5e                   	pop    %esi
405536:	5b                   	pop    %ebx
405537:	5d                   	pop    %ebp
405538:	c2 0c 00             	ret    $0xc
40553b:	8b ff                	mov    %edi,%edi
40553d:	55                   	push   %ebp
40553e:	8b ec                	mov    %esp,%ebp
405540:	51                   	push   %ecx
405541:	51                   	push   %ecx
405542:	53                   	push   %ebx
405543:	56                   	push   %esi
405544:	8b f1                	mov    %ecx,%esi
405546:	57                   	push   %edi
405547:	8d 4e 40             	lea    0x40(%esi),%ecx
40554a:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
405550:	85 ff                	test   %edi,%edi
405552:	75 02                	jne    0x405556
405554:	8b f9                	mov    %ecx,%edi
405556:	e8 60 fe ff ff       	call   0x4053bb
40555b:	8b 55 0c             	mov    0xc(%ebp),%edx
40555e:	48                   	dec    %eax
40555f:	8b 5d 08             	mov    0x8(%ebp),%ebx
405562:	03 f8                	add    %eax,%edi
405564:	89 7e 34             	mov    %edi,0x34(%esi)
405567:	8b 4e 28             	mov    0x28(%esi),%ecx
40556a:	85 c9                	test   %ecx,%ecx
40556c:	7f 06                	jg     0x405574
40556e:	8b c3                	mov    %ebx,%eax
405570:	0b c2                	or     %edx,%eax
405572:	74 3a                	je     0x4055ae
405574:	6a 00                	push   $0x0
405576:	ff 75 10             	push   0x10(%ebp)
405579:	8d 41 ff             	lea    -0x1(%ecx),%eax
40557c:	52                   	push   %edx
40557d:	53                   	push   %ebx
40557e:	89 46 28             	mov    %eax,0x28(%esi)
405581:	e8 6a 2a 01 00       	call   0x417ff0
405586:	80 c1 30             	add    $0x30,%cl
405589:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40558c:	8b d8                	mov    %eax,%ebx
40558e:	80 f9 39             	cmp    $0x39,%cl
405591:	7e 11                	jle    0x4055a4
405593:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
405597:	0f 94 c0             	sete   %al
40559a:	fe c8                	dec    %al
40559c:	24 e0                	and    $0xe0,%al
40559e:	04 61                	add    $0x61,%al
4055a0:	2c 3a                	sub    $0x3a,%al
4055a2:	02 c8                	add    %al,%cl
4055a4:	8b 46 34             	mov    0x34(%esi),%eax
4055a7:	88 08                	mov    %cl,(%eax)
4055a9:	ff 4e 34             	decl   0x34(%esi)
4055ac:	eb b9                	jmp    0x405567
4055ae:	8b 46 34             	mov    0x34(%esi),%eax
4055b1:	2b f8                	sub    %eax,%edi
4055b3:	89 7e 38             	mov    %edi,0x38(%esi)
4055b6:	40                   	inc    %eax
4055b7:	5f                   	pop    %edi
4055b8:	89 46 34             	mov    %eax,0x34(%esi)
4055bb:	5e                   	pop    %esi
4055bc:	5b                   	pop    %ebx
4055bd:	8b e5                	mov    %ebp,%esp
4055bf:	5d                   	pop    %ebp
4055c0:	c2 10 00             	ret    $0x10
4055c3:	8b ff                	mov    %edi,%edi
4055c5:	55                   	push   %ebp
4055c6:	8b ec                	mov    %esp,%ebp
4055c8:	56                   	push   %esi
4055c9:	33 f6                	xor    %esi,%esi
4055cb:	39 75 10             	cmp    %esi,0x10(%ebp)
4055ce:	7e 21                	jle    0x4055f1
4055d0:	53                   	push   %ebx
4055d1:	66 0f be 5d 0c       	movsbw 0xc(%ebp),%bx
4055d6:	57                   	push   %edi
4055d7:	8b 7d 14             	mov    0x14(%ebp),%edi
4055da:	8b 4d 08             	mov    0x8(%ebp),%ecx
4055dd:	57                   	push   %edi
4055de:	53                   	push   %ebx
4055df:	e8 93 0f 00 00       	call   0x406577
4055e4:	83 3f ff             	cmpl   $0xffffffff,(%edi)
4055e7:	74 06                	je     0x4055ef
4055e9:	46                   	inc    %esi
4055ea:	3b 75 10             	cmp    0x10(%ebp),%esi
4055ed:	7c eb                	jl     0x4055da
4055ef:	5f                   	pop    %edi
4055f0:	5b                   	pop    %ebx
4055f1:	5e                   	pop    %esi
4055f2:	5d                   	pop    %ebp
4055f3:	c3                   	ret
4055f4:	8b ff                	mov    %edi,%edi
4055f6:	55                   	push   %ebp
4055f7:	8b ec                	mov    %esp,%ebp
4055f9:	51                   	push   %ecx
4055fa:	33 d2                	xor    %edx,%edx
4055fc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4055ff:	33 c0                	xor    %eax,%eax
405601:	89 11                	mov    %edx,(%ecx)
405603:	66 89 41 32          	mov    %ax,0x32(%ecx)
405607:	8b c1                	mov    %ecx,%eax
405609:	89 51 04             	mov    %edx,0x4(%ecx)
40560c:	89 51 08             	mov    %edx,0x8(%ecx)
40560f:	89 51 0c             	mov    %edx,0xc(%ecx)
405612:	89 51 10             	mov    %edx,0x10(%ecx)
405615:	89 51 14             	mov    %edx,0x14(%ecx)
405618:	89 51 18             	mov    %edx,0x18(%ecx)
40561b:	89 51 1c             	mov    %edx,0x1c(%ecx)
40561e:	89 51 20             	mov    %edx,0x20(%ecx)
405621:	89 51 24             	mov    %edx,0x24(%ecx)
405624:	89 51 28             	mov    %edx,0x28(%ecx)
405627:	88 51 30             	mov    %dl,0x30(%ecx)
40562a:	89 51 38             	mov    %edx,0x38(%ecx)
40562d:	88 51 3c             	mov    %dl,0x3c(%ecx)
405630:	89 91 40 04 00 00    	mov    %edx,0x440(%ecx)
405636:	89 91 44 04 00 00    	mov    %edx,0x444(%ecx)
40563c:	8b e5                	mov    %ebp,%esp
40563e:	5d                   	pop    %ebp
40563f:	c3                   	ret
405640:	8b ff                	mov    %edi,%edi
405642:	55                   	push   %ebp
405643:	8b ec                	mov    %esp,%ebp
405645:	56                   	push   %esi
405646:	8b f1                	mov    %ecx,%esi
405648:	e8 a7 ff ff ff       	call   0x4055f4
40564d:	8b 45 08             	mov    0x8(%ebp),%eax
405650:	8b 00                	mov    (%eax),%eax
405652:	89 86 48 04 00 00    	mov    %eax,0x448(%esi)
405658:	8b 45 0c             	mov    0xc(%ebp),%eax
40565b:	89 06                	mov    %eax,(%esi)
40565d:	8b 45 10             	mov    0x10(%ebp),%eax
405660:	89 46 04             	mov    %eax,0x4(%esi)
405663:	8b 45 18             	mov    0x18(%ebp),%eax
405666:	89 46 08             	mov    %eax,0x8(%esi)
405669:	8b 45 14             	mov    0x14(%ebp),%eax
40566c:	89 46 10             	mov    %eax,0x10(%esi)
40566f:	8b 45 1c             	mov    0x1c(%ebp),%eax
405672:	89 46 14             	mov    %eax,0x14(%esi)
405675:	8b c6                	mov    %esi,%eax
405677:	5e                   	pop    %esi
405678:	5d                   	pop    %ebp
405679:	c2 18 00             	ret    $0x18
40567c:	8b ff                	mov    %edi,%edi
40567e:	55                   	push   %ebp