420297:	66 83 38 00          	cmpw   $0x0,(%eax)
42029b:	74 06                	je     0x4202a3
42029d:	03 c7                	add    %edi,%eax
42029f:	85 d2                	test   %edx,%edx
4202a1:	75 f3                	jne    0x420296
4202a3:	2b 45 c4             	sub    -0x3c(%ebp),%eax
4202a6:	d1 f8                	sar    $1,%eax
4202a8:	e9 5e 01 00 00       	jmp    0x42040b
4202ad:	c7 45 cc 08 00 00 00 	movl   $0x8,-0x34(%ebp)
4202b4:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4202b7:	f6 45 d0 80          	testb  $0x80,-0x30(%ebp)
4202bb:	c7 45 c8 10 00 00 00 	movl   $0x10,-0x38(%ebp)
4202c2:	0f 84 2f fe ff ff    	je     0x4200f7
4202c8:	8b 45 9c             	mov    -0x64(%ebp),%eax
4202cb:	83 c0 51             	add    $0x51,%eax
4202ce:	66 c7 45 b0 30 00    	movw   $0x30,-0x50(%ebp)
4202d4:	66 89 45 b2          	mov    %ax,-0x4e(%ebp)
4202d8:	89 7d bc             	mov    %edi,-0x44(%ebp)
4202db:	e9 17 fe ff ff       	jmp    0x4200f7
4202e0:	f6 45 d0 80          	testb  $0x80,-0x30(%ebp)
4202e4:	c7 45 c8 08 00 00 00 	movl   $0x8,-0x38(%ebp)
4202eb:	0f 84 06 fe ff ff    	je     0x4200f7
4202f1:	80 4d d1 02          	orb    $0x2,-0x2f(%ebp)
4202f5:	e9 fd fd ff ff       	jmp    0x4200f7
4202fa:	83 85 e8 03 00 00 04 	addl   $0x4,0x3e8(%ebp)
420301:	f6 45 d0 20          	testb  $0x20,-0x30(%ebp)
420305:	8b 85 e8 03 00 00    	mov    0x3e8(%ebp),%eax
42030b:	8b 40 fc             	mov    -0x4(%eax),%eax
42030e:	74 09                	je     0x420319
420310:	66 8b 4d c0          	mov    -0x40(%ebp),%cx
420314:	66 89 08             	mov    %cx,(%eax)
420317:	eb 05                	jmp    0x42031e
420319:	8b 4d c0             	mov    -0x40(%ebp),%ecx
42031c:	89 08                	mov    %ecx,(%eax)
42031e:	c7 45 a4 01 00 00 00 	movl   $0x1,-0x5c(%ebp)
420325:	e9 e8 01 00 00       	jmp    0x420512
42032a:	83 85 e8 03 00 00 04 	addl   $0x4,0x3e8(%ebp)
420331:	f6 c3 20             	test   $0x20,%bl
420334:	8b 85 e8 03 00 00    	mov    0x3e8(%ebp),%eax
42033a:	74 12                	je     0x42034e
42033c:	f6 c3 40             	test   $0x40,%bl
42033f:	74 07                	je     0x420348
420341:	0f bf 40 fc          	movswl -0x4(%eax),%eax
420345:	99                   	cltd
420346:	eb 10                	jmp    0x420358
420348:	0f b7 40 fc          	movzwl -0x4(%eax),%eax
42034c:	eb f7                	jmp    0x420345
42034e:	f6 c3 40             	test   $0x40,%bl
420351:	8b 40 fc             	mov    -0x4(%eax),%eax
420354:	75 ef                	jne    0x420345
420356:	33 d2                	xor    %edx,%edx
420358:	f6 c3 40             	test   $0x40,%bl
42035b:	74 15                	je     0x420372
42035d:	85 d2                	test   %edx,%edx
42035f:	7f 11                	jg     0x420372
420361:	7c 04                	jl     0x420367
420363:	85 c0                	test   %eax,%eax
420365:	73 0b                	jae    0x420372
420367:	f7 d8                	neg    %eax
420369:	83 d2 00             	adc    $0x0,%edx
42036c:	f7 da                	neg    %edx
42036e:	80 4d d1 01          	orb    $0x1,-0x2f(%ebp)
420372:	85 75 d0             	test   %esi,-0x30(%ebp)
420375:	8b d8                	mov    %eax,%ebx
420377:	8b fa                	mov    %edx,%edi
420379:	75 02                	jne    0x42037d
42037b:	33 ff                	xor    %edi,%edi
42037d:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
420381:	7d 09                	jge    0x42038c
420383:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
42038a:	eb 11                	jmp    0x42039d
42038c:	83 65 d0 f7          	andl   $0xfffffff7,-0x30(%ebp)
420390:	b8 00 02 00 00       	mov    $0x200,%eax
420395:	39 45 cc             	cmp    %eax,-0x34(%ebp)
420398:	7e 03                	jle    0x42039d
42039a:	89 45 cc             	mov    %eax,-0x34(%ebp)
42039d:	8b c3                	mov    %ebx,%eax
42039f:	0b c7                	or     %edi,%eax
4203a1:	75 04                	jne    0x4203a7
4203a3:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)
4203a7:	8d b5 d3 01 00 00    	lea    0x1d3(%ebp),%esi
4203ad:	8b 45 cc             	mov    -0x34(%ebp),%eax
4203b0:	ff 4d cc             	decl   -0x34(%ebp)
4203b3:	85 c0                	test   %eax,%eax
4203b5:	7f 06                	jg     0x4203bd
4203b7:	8b c3                	mov    %ebx,%eax
4203b9:	0b c7                	or     %edi,%eax
4203bb:	74 24                	je     0x4203e1
4203bd:	8b 45 c8             	mov    -0x38(%ebp),%eax
4203c0:	99                   	cltd
4203c1:	52                   	push   %edx
4203c2:	50                   	push   %eax
4203c3:	57                   	push   %edi
4203c4:	53                   	push   %ebx
4203c5:	e8 96 33 00 00       	call   0x423760
4203ca:	83 c1 30             	add    $0x30,%ecx
4203cd:	83 f9 39             	cmp    $0x39,%ecx
4203d0:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
4203d3:	8b d8                	mov    %eax,%ebx
4203d5:	8b fa                	mov    %edx,%edi
4203d7:	7e 03                	jle    0x4203dc
4203d9:	03 4d 9c             	add    -0x64(%ebp),%ecx
4203dc:	88 0e                	mov    %cl,(%esi)
4203de:	4e                   	dec    %esi
4203df:	eb cc                	jmp    0x4203ad
4203e1:	8d 85 d3 01 00 00    	lea    0x1d3(%ebp),%eax
4203e7:	2b c6                	sub    %esi,%eax
4203e9:	46                   	inc    %esi
4203ea:	f6 45 d1 02          	testb  $0x2,-0x2f(%ebp)
4203ee:	89 45 c8             	mov    %eax,-0x38(%ebp)
4203f1:	89 75 c4             	mov    %esi,-0x3c(%ebp)
4203f4:	74 18                	je     0x42040e
4203f6:	8b ce                	mov    %esi,%ecx
4203f8:	80 39 30             	cmpb   $0x30,(%ecx)
4203fb:	75 04                	jne    0x420401
4203fd:	85 c0                	test   %eax,%eax
4203ff:	75 0d                	jne    0x42040e
420401:	ff 4d c4             	decl   -0x3c(%ebp)
420404:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
420407:	c6 01 30             	movb   $0x30,(%ecx)
42040a:	40                   	inc    %eax
42040b:	89 45 c8             	mov    %eax,-0x38(%ebp)
42040e:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
420412:	0f 85 fa 00 00 00    	jne    0x420512
420418:	8b 45 d0             	mov    -0x30(%ebp),%eax
42041b:	a8 40                	test   $0x40,%al
42041d:	74 2a                	je     0x420449
42041f:	f6 c4 01             	test   $0x1,%ah
420422:	74 08                	je     0x42042c
420424:	66 c7 45 b0 2d 00    	movw   $0x2d,-0x50(%ebp)
42042a:	eb 16                	jmp    0x420442
42042c:	a8 01                	test   $0x1,%al
42042e:	74 08                	je     0x420438
420430:	66 c7 45 b0 2b 00    	movw   $0x2b,-0x50(%ebp)
420436:	eb 0a                	jmp    0x420442
420438:	a8 02                	test   $0x2,%al
42043a:	74 0d                	je     0x420449
42043c:	66 c7 45 b0 20 00    	movw   $0x20,-0x50(%ebp)
420442:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
420449:	8b 5d b8             	mov    -0x48(%ebp),%ebx
42044c:	2b 5d bc             	sub    -0x44(%ebp),%ebx
42044f:	2b 5d c8             	sub    -0x38(%ebp),%ebx
420452:	f6 45 d0 0c          	testb  $0xc,-0x30(%ebp)
420456:	75 14                	jne    0x42046c
420458:	ff b5 e0 03 00 00    	push   0x3e0(%ebp)
42045e:	8d 45 c0             	lea    -0x40(%ebp),%eax
420461:	53                   	push   %ebx
420462:	6a 20                	push   $0x20
420464:	e8 60 f8 ff ff       	call   0x41fcc9
420469:	83 c4 0c             	add    $0xc,%esp
42046c:	ff 75 bc             	push   -0x44(%ebp)
42046f:	8b bd e0 03 00 00    	mov    0x3e0(%ebp),%edi
420475:	8d 45 c0             	lea    -0x40(%ebp),%eax
420478:	8d 4d b0             	lea    -0x50(%ebp),%ecx
42047b:	e8 6e f8 ff ff       	call   0x41fcee
420480:	f6 45 d0 08          	testb  $0x8,-0x30(%ebp)
420484:	59                   	pop    %ecx
420485:	74 15                	je     0x42049c
420487:	f6 45 d0 04          	testb  $0x4,-0x30(%ebp)
42048b:	75 0f                	jne    0x42049c
42048d:	57                   	push   %edi
42048e:	53                   	push   %ebx
42048f:	6a 30                	push   $0x30
420491:	8d 45 c0             	lea    -0x40(%ebp),%eax
420494:	e8 30 f8 ff ff       	call   0x41fcc9
420499:	83 c4 0c             	add    $0xc,%esp
42049c:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
4204a0:	75 47                	jne    0x4204e9
4204a2:	8b 45 c8             	mov    -0x38(%ebp),%eax
4204a5:	85 c0                	test   %eax,%eax
4204a7:	7e 40                	jle    0x4204e9
4204a9:	8b 7d c4             	mov    -0x3c(%ebp),%edi
4204ac:	89 45 a0             	mov    %eax,-0x60(%ebp)
4204af:	ff 35 10 96 4a 00    	push   0x4a9610
4204b5:	ff 4d a0             	decl   -0x60(%ebp)
4204b8:	8d 45 90             	lea    -0x70(%ebp),%eax
4204bb:	57                   	push   %edi
4204bc:	50                   	push   %eax
4204bd:	e8 87 4e 00 00       	call   0x425349
4204c2:	83 c4 0c             	add    $0xc,%esp
4204c5:	85 c0                	test   %eax,%eax
4204c7:	89 45 8c             	mov    %eax,-0x74(%ebp)
4204ca:	7e 2c                	jle    0x4204f8
4204cc:	ff 75 90             	push   -0x70(%ebp)
4204cf:	8b 85 e0 03 00 00    	mov    0x3e0(%ebp),%eax
4204d5:	8d 75 c0             	lea    -0x40(%ebp),%esi
4204d8:	e8 c7 f7 ff ff       	call   0x41fca4
4204dd:	03 7d 8c             	add    -0x74(%ebp),%edi
4204e0:	83 7d a0 00          	cmpl   $0x0,-0x60(%ebp)
4204e4:	59                   	pop    %ecx
4204e5:	7f c8                	jg     0x4204af
4204e7:	eb 0f                	jmp    0x4204f8
4204e9:	ff 75 c8             	push   -0x38(%ebp)
4204ec:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4204ef:	8d 45 c0             	lea    -0x40(%ebp),%eax
4204f2:	e8 f7 f7 ff ff       	call   0x41fcee
4204f7:	59                   	pop    %ecx
4204f8:	f6 45 d0 04          	testb  $0x4,-0x30(%ebp)
4204fc:	74 14                	je     0x420512
4204fe:	ff b5 e0 03 00 00    	push   0x3e0(%ebp)
420504:	8d 45 c0             	lea    -0x40(%ebp),%eax
420507:	53                   	push   %ebx
420508:	6a 20                	push   $0x20
42050a:	e8 ba f7 ff ff       	call   0x41fcc9
42050f:	83 c4 0c             	add    $0xc,%esp
420512:	83 7d a8 00          	cmpl   $0x0,-0x58(%ebp)
420516:	74 0d                	je     0x420525
420518:	ff 75 a8             	push   -0x58(%ebp)
42051b:	e8 7e 5e ff ff       	call   0x41639e
420520:	83 65 a8 00          	andl   $0x0,-0x58(%ebp)
420524:	59                   	pop    %ecx
420525:	8b 85 e4 03 00 00    	mov    0x3e4(%ebp),%eax
42052b:	66 8b 18             	mov    (%eax),%bx
42052e:	66 85 db             	test   %bx,%bx
420531:	0f 85 46 f8 ff ff    	jne    0x41fd7d
420537:	5f                   	pop    %edi
420538:	5e                   	pop    %esi
420539:	8b 8d d4 03 00 00    	mov    0x3d4(%ebp),%ecx
42053f:	8b 45 c0             	mov    -0x40(%ebp),%eax
420542:	5b                   	pop    %ebx
420543:	e8 96 76 ff ff       	call   0x417bde
420548:	81 c5 d8 03 00 00    	add    $0x3d8,%ebp
42054e:	c9                   	leave
42054f:	c3                   	ret
420550:	87 ff                	xchg   %edi,%edi
420552:	41                   	inc    %ecx
420553:	00 d2                	add    %dl,%dl
420555:	fd                   	std
420556:	41                   	inc    %ecx
420557:	00 ef                	add    %ch,%bh
420559:	fd                   	std
42055a:	41                   	inc    %ecx
42055b:	00 39                	add    %bh,(%ecx)
42055d:	fe 41 00             	incb   0x0(%ecx)
420560:	7b fe                	jnp    0x420560
420562:	41                   	inc    %ecx
420563:	00 84 fe 41 00 c3 fe 	add    %al,-0x13cffbf(%esi,%edi,8)
42056a:	41                   	inc    %ecx
42056b:	00 a2 ff 41 00 55    	add    %ah,0x550041ff(%edx)
420571:	8b ec                	mov    %esp,%ebp
420573:	56                   	push   %esi
420574:	33 c0                	xor    %eax,%eax
420576:	50                   	push   %eax
420577:	50                   	push   %eax
420578:	50                   	push   %eax
420579:	50                   	push   %eax
42057a:	50                   	push   %eax
42057b:	50                   	push   %eax
42057c:	50                   	push   %eax
42057d:	50                   	push   %eax
42057e:	8b 55 0c             	mov    0xc(%ebp),%edx
420581:	8d 49 00             	lea    0x0(%ecx),%ecx
420584:	8a 02                	mov    (%edx),%al
420586:	0a c0                	or     %al,%al
420588:	74 09                	je     0x420593
42058a:	83 c2 01             	add    $0x1,%edx
42058d:	0f ab 04 24          	bts    %eax,(%esp)
420591:	eb f1                	jmp    0x420584
420593:	8b 75 08             	mov    0x8(%ebp),%esi
420596:	8b ff                	mov    %edi,%edi
420598:	8a 06                	mov    (%esi),%al
42059a:	0a c0                	or     %al,%al
42059c:	74 0c                	je     0x4205aa
42059e:	83 c6 01             	add    $0x1,%esi
4205a1:	0f a3 04 24          	bt     %eax,(%esp)
4205a5:	73 f1                	jae    0x420598
4205a7:	8d 46 ff             	lea    -0x1(%esi),%eax
4205aa:	83 c4 20             	add    $0x20,%esp
4205ad:	5e                   	pop    %esi
4205ae:	c9                   	leave
4205af:	c3                   	ret
4205b0:	55                   	push   %ebp
4205b1:	8b ec                	mov    %esp,%ebp
4205b3:	57                   	push   %edi
4205b4:	8b 7d 08             	mov    0x8(%ebp),%edi
4205b7:	33 c0                	xor    %eax,%eax
4205b9:	83 c9 ff             	or     $0xffffffff,%ecx
4205bc:	f2 ae                	repnz scas %es:(%edi),%al
4205be:	83 c1 01             	add    $0x1,%ecx
4205c1:	f7 d9                	neg    %ecx
4205c3:	83 ef 01             	sub    $0x1,%edi
4205c6:	8a 45 0c             	mov    0xc(%ebp),%al
4205c9:	fd                   	std
4205ca:	f2 ae                	repnz scas %es:(%edi),%al
4205cc:	83 c7 01             	add    $0x1,%edi
4205cf:	38 07                	cmp    %al,(%edi)
4205d1:	74 04                	je     0x4205d7
4205d3:	33 c0                	xor    %eax,%eax
4205d5:	eb 02                	jmp    0x4205d9
4205d7:	8b c7                	mov    %edi,%eax
4205d9:	fc                   	cld
4205da:	5f                   	pop    %edi
4205db:	c9                   	leave
4205dc:	c3                   	ret
4205dd:	55                   	push   %ebp
4205de:	8b ec                	mov    %esp,%ebp
4205e0:	51                   	push   %ecx
4205e1:	8b 45 0c             	mov    0xc(%ebp),%eax
4205e4:	8d 48 01             	lea    0x1(%eax),%ecx
4205e7:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4205ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
4205f0:	77 09                	ja     0x4205fb
4205f2:	8b 49 48             	mov    0x48(%ecx),%ecx
4205f5:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
4205f9:	eb 54                	jmp    0x42064f
4205fb:	56                   	push   %esi
4205fc:	8b d0                	mov    %eax,%edx
4205fe:	c1 fa 08             	sar    $0x8,%edx
420601:	57                   	push   %edi
420602:	8b 79 48             	mov    0x48(%ecx),%edi
420605:	0f b6 f2             	movzbl %dl,%esi
420608:	f6 44 77 01 80       	testb  $0x80,0x1(%edi,%esi,2)
42060d:	5f                   	pop    %edi
42060e:	5e                   	pop    %esi
42060f:	74 0f                	je     0x420620
420611:	6a 02                	push   $0x2
420613:	88 45 fd             	mov    %al,-0x3(%ebp)
420616:	88 55 fc             	mov    %dl,-0x4(%ebp)
420619:	c6 45 fe 00          	movb   $0x0,-0x2(%ebp)
42061d:	58                   	pop    %eax
42061e:	eb 0a                	jmp    0x42062a
420620:	88 45 fc             	mov    %al,-0x4(%ebp)
420623:	33 c0                	xor    %eax,%eax
420625:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
420629:	40                   	inc    %eax
42062a:	6a 01                	push   $0x1
42062c:	ff 71 14             	push   0x14(%ecx)
42062f:	ff 71 04             	push   0x4(%ecx)
420632:	8d 4d 0e             	lea    0xe(%ebp),%ecx
420635:	51                   	push   %ecx
420636:	50                   	push   %eax
420637:	8d 45 fc             	lea    -0x4(%ebp),%eax
42063a:	50                   	push   %eax
42063b:	6a 01                	push   $0x1
42063d:	e8 d1 2b 00 00       	call   0x423213
420642:	83 c4 1c             	add    $0x1c,%esp
420645:	85 c0                	test   %eax,%eax
420647:	75 02                	jne    0x42064b
420649:	c9                   	leave
42064a:	c3                   	ret
42064b:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
42064f:	23 45 10             	and    0x10(%ebp),%eax
420652:	c9                   	leave
420653:	c3                   	ret
420654:	e8 4e c6 ff ff       	call   0x41cca7
420659:	8b 40 64             	mov    0x64(%eax),%eax
42065c:	3b 05 fc 93 4a 00    	cmp    0x4a93fc,%eax
420662:	74 05                	je     0x420669
420664:	e8 00 03 00 00       	call   0x420969
420669:	ff 74 24 08          	push   0x8(%esp)