4371f0:	6a 0a                	push   $0xa
4371f2:	03 c7                	add    %edi,%eax
4371f4:	89 84 8d 60 fc ff ff 	mov    %eax,-0x3a0(%ebp,%ecx,4)
4371fb:	83 d2 00             	adc    $0x0,%edx
4371fe:	41                   	inc    %ecx
4371ff:	8b fa                	mov    %edx,%edi
437201:	5a                   	pop    %edx
437202:	3b 8d 88 f8 ff ff    	cmp    -0x778(%ebp),%ecx
437208:	75 dd                	jne    0x4371e7
43720a:	89 bd 88 f8 ff ff    	mov    %edi,-0x778(%ebp)
437210:	85 ff                	test   %edi,%edi
437212:	8b bd b8 f8 ff ff    	mov    -0x748(%ebp),%edi
437218:	74 22                	je     0x43723c
43721a:	8b 8d 5c fc ff ff    	mov    -0x3a4(%ebp),%ecx
437220:	83 f9 73             	cmp    $0x73,%ecx
437223:	0f 83 d1 00 00 00    	jae    0x4372fa
437229:	8b 85 88 f8 ff ff    	mov    -0x778(%ebp),%eax
43722f:	89 84 8d 60 fc ff ff 	mov    %eax,-0x3a0(%ebp,%ecx,4)
437236:	ff 85 5c fc ff ff    	incl   -0x3a4(%ebp)
43723c:	8b 8d a0 f8 ff ff    	mov    -0x760(%ebp),%ecx
437242:	8b 95 74 f8 ff ff    	mov    -0x78c(%ebp),%edx
437248:	8b 85 7c f8 ff ff    	mov    -0x784(%ebp),%eax
43724e:	89 42 04             	mov    %eax,0x4(%edx)
437251:	8b 95 78 f8 ff ff    	mov    -0x788(%ebp),%edx
437257:	85 c0                	test   %eax,%eax
437259:	78 10                	js     0x43726b
43725b:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
437261:	77 08                	ja     0x43726b
437263:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
437267:	75 02                	jne    0x43726b
437269:	03 d0                	add    %eax,%edx
43726b:	8b 45 20             	mov    0x20(%ebp),%eax
43726e:	48                   	dec    %eax
43726f:	3b c2                	cmp    %edx,%eax
437271:	72 02                	jb     0x437275
437273:	8b c2                	mov    %edx,%eax
437275:	03 c1                	add    %ecx,%eax
437277:	32 d2                	xor    %dl,%dl
437279:	89 85 ac f8 ff ff    	mov    %eax,-0x754(%ebp)
43727f:	88 95 a7 f8 ff ff    	mov    %dl,-0x759(%ebp)
437285:	3b f8                	cmp    %eax,%edi
437287:	0f 84 88 01 00 00    	je     0x437415
43728d:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
437293:	89 85 88 f8 ff ff    	mov    %eax,-0x778(%ebp)
437299:	85 c0                	test   %eax,%eax
43729b:	0f 84 74 01 00 00    	je     0x437415
4372a1:	33 ff                	xor    %edi,%edi
4372a3:	33 c9                	xor    %ecx,%ecx
4372a5:	8b 84 8d 30 fe ff ff 	mov    -0x1d0(%ebp,%ecx,4),%eax
4372ac:	ba 00 ca 9a 3b       	mov    $0x3b9aca00,%edx
4372b1:	f7 e2                	mul    %edx
4372b3:	03 c7                	add    %edi,%eax
4372b5:	89 84 8d 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%ecx,4)
4372bc:	83 d2 00             	adc    $0x0,%edx
4372bf:	41                   	inc    %ecx
4372c0:	8b fa                	mov    %edx,%edi
4372c2:	3b 8d 88 f8 ff ff    	cmp    -0x778(%ebp),%ecx
4372c8:	75 db                	jne    0x4372a5
4372ca:	89 bd 88 f8 ff ff    	mov    %edi,-0x778(%ebp)
4372d0:	85 ff                	test   %edi,%edi
4372d2:	8b bd b8 f8 ff ff    	mov    -0x748(%ebp),%edi
4372d8:	0f 84 8e 00 00 00    	je     0x43736c
4372de:	8b 8d 2c fe ff ff    	mov    -0x1d4(%ebp),%ecx
4372e4:	83 f9 73             	cmp    $0x73,%ecx
4372e7:	73 5d                	jae    0x437346
4372e9:	8b c2                	mov    %edx,%eax
4372eb:	89 84 8d 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%ecx,4)
4372f2:	ff 85 2c fe ff ff    	incl   -0x1d4(%ebp)
4372f8:	eb 72                	jmp    0x43736c
4372fa:	33 c0                	xor    %eax,%eax
4372fc:	50                   	push   %eax
4372fd:	89 85 8c f6 ff ff    	mov    %eax,-0x974(%ebp)
437303:	89 85 5c fc ff ff    	mov    %eax,-0x3a4(%ebp)
437309:	8d 85 90 f6 ff ff    	lea    -0x970(%ebp),%eax
43730f:	50                   	push   %eax
437310:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
437316:	56                   	push   %esi
437317:	50                   	push   %eax
437318:	e8 0e d0 fe ff       	call   0x42432b
43731d:	83 c4 10             	add    $0x10,%esp
437320:	e9 17 ff ff ff       	jmp    0x43723c
437325:	85 c0                	test   %eax,%eax
437327:	75 0b                	jne    0x437334
437329:	ff 8d 7c f8 ff ff    	decl   -0x784(%ebp)
43732f:	e9 0e ff ff ff       	jmp    0x437242
437334:	04 30                	add    $0x30,%al
437336:	8d 79 01             	lea    0x1(%ecx),%edi
437339:	88 01                	mov    %al,(%ecx)
43733b:	89 bd b8 f8 ff ff    	mov    %edi,-0x748(%ebp)
437341:	e9 fc fe ff ff       	jmp    0x437242
437346:	33 c0                	xor    %eax,%eax
437348:	50                   	push   %eax
437349:	89 85 8c f6 ff ff    	mov    %eax,-0x974(%ebp)
43734f:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
437355:	8d 85 90 f6 ff ff    	lea    -0x970(%ebp),%eax
43735b:	50                   	push   %eax
43735c:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
437362:	56                   	push   %esi
437363:	50                   	push   %eax
437364:	e8 c2 cf fe ff       	call   0x42432b
437369:	83 c4 10             	add    $0x10,%esp
43736c:	8d 85 5c fc ff ff    	lea    -0x3a4(%ebp),%eax
437372:	50                   	push   %eax
437373:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
437379:	50                   	push   %eax
43737a:	e8 41 d0 fe ff       	call   0x4243c0
43737f:	59                   	pop    %ecx
437380:	59                   	pop    %ecx
437381:	8b 8d ac f8 ff ff    	mov    -0x754(%ebp),%ecx
437387:	89 85 a8 f8 ff ff    	mov    %eax,-0x758(%ebp)
43738d:	2b cf                	sub    %edi,%ecx
43738f:	c7 85 90 f8 ff ff 08 	movl   $0x8,-0x770(%ebp)
437396:	00 00 00
437399:	33 d2                	xor    %edx,%edx
43739b:	f7 b5 b0 f8 ff ff    	divl   -0x750(%ebp)
4373a1:	8b c2                	mov    %edx,%eax
4373a3:	33 d2                	xor    %edx,%edx
4373a5:	04 30                	add    $0x30,%al
4373a7:	89 85 78 f8 ff ff    	mov    %eax,-0x788(%ebp)
4373ad:	8b 85 a8 f8 ff ff    	mov    -0x758(%ebp),%eax
4373b3:	f7 b5 b0 f8 ff ff    	divl   -0x750(%ebp)
4373b9:	8b 95 78 f8 ff ff    	mov    -0x788(%ebp),%edx
4373bf:	89 85 a8 f8 ff ff    	mov    %eax,-0x758(%ebp)
4373c5:	8b 85 90 f8 ff ff    	mov    -0x770(%ebp),%eax
4373cb:	3b c8                	cmp    %eax,%ecx
4373cd:	77 0f                	ja     0x4373de
4373cf:	80 fa 30             	cmp    $0x30,%dl
4373d2:	74 0d                	je     0x4373e1
4373d4:	8a d3                	mov    %bl,%dl
4373d6:	88 95 a7 f8 ff ff    	mov    %dl,-0x759(%ebp)
4373dc:	eb 09                	jmp    0x4373e7
4373de:	88 14 38             	mov    %dl,(%eax,%edi,1)
4373e1:	8a 95 a7 f8 ff ff    	mov    -0x759(%ebp),%dl
4373e7:	48                   	dec    %eax
4373e8:	89 85 90 f8 ff ff    	mov    %eax,-0x770(%ebp)
4373ee:	83 f8 ff             	cmp    $0xffffffff,%eax
4373f1:	8b 85 a8 f8 ff ff    	mov    -0x758(%ebp),%eax
4373f7:	75 a0                	jne    0x437399
4373f9:	83 f9 09             	cmp    $0x9,%ecx
4373fc:	76 03                	jbe    0x437401
4373fe:	6a 09                	push   $0x9
437400:	59                   	pop    %ecx
437401:	03 f9                	add    %ecx,%edi
437403:	89 bd b8 f8 ff ff    	mov    %edi,-0x748(%ebp)
437409:	3b bd ac f8 ff ff    	cmp    -0x754(%ebp),%edi
43740f:	0f 85 78 fe ff ff    	jne    0x43728d
437415:	c6 07 00             	movb   $0x0,(%edi)
437418:	83 bd 2c fe ff ff 00 	cmpl   $0x0,-0x1d4(%ebp)
43741f:	75 04                	jne    0x437425
437421:	84 d2                	test   %dl,%dl
437423:	74 02                	je     0x437427
437425:	33 db                	xor    %ebx,%ebx
437427:	ff b5 70 f8 ff ff    	push   -0x790(%ebp)
43742d:	8d 85 88 f8 ff ff    	lea    -0x778(%ebp),%eax
437433:	ff b5 6c f8 ff ff    	push   -0x794(%ebp)
437439:	50                   	push   %eax
43743a:	e8 11 2c ff ff       	call   0x42a050
43743f:	83 c4 0c             	add    $0xc,%esp
437442:	80 bd 68 f8 ff ff 00 	cmpb   $0x0,-0x798(%ebp)
437449:	5f                   	pop    %edi
43744a:	5e                   	pop    %esi
43744b:	74 0d                	je     0x43745a
43744d:	8d 85 60 f8 ff ff    	lea    -0x7a0(%ebp),%eax
437453:	50                   	push   %eax
437454:	e8 c0 1f 00 00       	call   0x439419
437459:	59                   	pop    %ecx
43745a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43745d:	8b c3                	mov    %ebx,%eax
43745f:	33 cd                	xor    %ebp,%ecx
437461:	5b                   	pop    %ebx
437462:	e8 43 27 fe ff       	call   0x419baa
437467:	c9                   	leave
437468:	c3                   	ret
437469:	33 c0                	xor    %eax,%eax
43746b:	50                   	push   %eax
43746c:	50                   	push   %eax
43746d:	50                   	push   %eax
43746e:	50                   	push   %eax
43746f:	50                   	push   %eax
437470:	e8 3b 85 fe ff       	call   0x41f9b0
437475:	cc                   	int3
437476:	8b ff                	mov    %edi,%edi
437478:	55                   	push   %ebp
437479:	8b ec                	mov    %esp,%ebp
43747b:	8b 55 08             	mov    0x8(%ebp),%edx
43747e:	85 d2                	test   %edx,%edx
437480:	75 0f                	jne    0x437491
437482:	33 c9                	xor    %ecx,%ecx
437484:	8b 45 10             	mov    0x10(%ebp),%eax
437487:	89 08                	mov    %ecx,(%eax)
437489:	89 48 04             	mov    %ecx,0x4(%eax)
43748c:	33 c0                	xor    %eax,%eax
43748e:	40                   	inc    %eax
43748f:	5d                   	pop    %ebp
437490:	c3                   	ret
437491:	8b 4d 0c             	mov    0xc(%ebp),%ecx
437494:	85 c9                	test   %ecx,%ecx
437496:	75 04                	jne    0x43749c
437498:	88 0a                	mov    %cl,(%edx)
43749a:	eb e8                	jmp    0x437484
43749c:	f7 c1 80 ff ff ff    	test   $0xffffff80,%ecx
4374a2:	75 04                	jne    0x4374a8
4374a4:	88 0a                	mov    %cl,(%edx)
4374a6:	eb e4                	jmp    0x43748c
4374a8:	53                   	push   %ebx
4374a9:	56                   	push   %esi
4374aa:	f7 c1 00 f8 ff ff    	test   $0xfffff800,%ecx
4374b0:	75 07                	jne    0x4374b9
4374b2:	33 f6                	xor    %esi,%esi
4374b4:	b3 c0                	mov    $0xc0,%bl
4374b6:	46                   	inc    %esi
4374b7:	eb 33                	jmp    0x4374ec
4374b9:	f7 c1 00 00 ff ff    	test   $0xffff0000,%ecx
4374bf:	75 16                	jne    0x4374d7
4374c1:	81 f9 00 d8 00 00    	cmp    $0xd800,%ecx
4374c7:	72 08                	jb     0x4374d1
4374c9:	81 f9 ff df 00 00    	cmp    $0xdfff,%ecx
4374cf:	76 44                	jbe    0x437515
4374d1:	6a 02                	push   $0x2
4374d3:	b3 e0                	mov    $0xe0,%bl
4374d5:	eb 14                	jmp    0x4374eb
4374d7:	f7 c1 00 00 e0 ff    	test   $0xffe00000,%ecx
4374dd:	75 36                	jne    0x437515
4374df:	81 f9 ff ff 10 00    	cmp    $0x10ffff,%ecx
4374e5:	77 2e                	ja     0x437515
4374e7:	6a 03                	push   $0x3
4374e9:	b3 f0                	mov    $0xf0,%bl
4374eb:	5e                   	pop    %esi
4374ec:	57                   	push   %edi
4374ed:	8b fe                	mov    %esi,%edi
4374ef:	8a c1                	mov    %cl,%al
4374f1:	c1 e9 06             	shr    $0x6,%ecx
4374f4:	24 3f                	and    $0x3f,%al
4374f6:	0c 80                	or     $0x80,%al
4374f8:	88 04 17             	mov    %al,(%edi,%edx,1)
4374fb:	83 ef 01             	sub    $0x1,%edi
4374fe:	75 ef                	jne    0x4374ef
437500:	ff 75 10             	push   0x10(%ebp)
437503:	8d 46 01             	lea    0x1(%esi),%eax
437506:	0a cb                	or     %bl,%cl
437508:	50                   	push   %eax
437509:	88 0a                	mov    %cl,(%edx)
43750b:	e8 dd 21 00 00       	call   0x4396ed
437510:	59                   	pop    %ecx
437511:	59                   	pop    %ecx
437512:	5f                   	pop    %edi
437513:	eb 0d                	jmp    0x437522
437515:	ff 75 14             	push   0x14(%ebp)
437518:	ff 75 10             	push   0x10(%ebp)
43751b:	e8 e1 21 00 00       	call   0x439701
437520:	59                   	pop    %ecx
437521:	59                   	pop    %ecx
437522:	5e                   	pop    %esi
437523:	5b                   	pop    %ebx
437524:	5d                   	pop    %ebp
437525:	c3                   	ret
437526:	8b ff                	mov    %edi,%edi
437528:	55                   	push   %ebp
437529:	8b ec                	mov    %esp,%ebp
43752b:	8b 4d 08             	mov    0x8(%ebp),%ecx
43752e:	80 39 00             	cmpb   $0x0,(%ecx)
437531:	75 05                	jne    0x437538
437533:	33 c0                	xor    %eax,%eax
437535:	40                   	inc    %eax
437536:	eb 16                	jmp    0x43754e
437538:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
43753c:	75 05                	jne    0x437543
43753e:	6a 02                	push   $0x2
437540:	58                   	pop    %eax
437541:	eb 0b                	jmp    0x43754e
437543:	33 c0                	xor    %eax,%eax
437545:	38 41 02             	cmp    %al,0x2(%ecx)
437548:	0f 95 c0             	setne  %al
43754b:	83 c0 03             	add    $0x3,%eax
43754e:	5d                   	pop    %ebp
43754f:	c2 04 00             	ret    $0x4
437552:	8b ff                	mov    %edi,%edi
437554:	55                   	push   %ebp
437555:	8b ec                	mov    %esp,%ebp
437557:	51                   	push   %ecx
437558:	ff 75 18             	push   0x18(%ebp)
43755b:	8d 45 fc             	lea    -0x4(%ebp),%eax
43755e:	ff 75 14             	push   0x14(%ebp)
437561:	ff 75 10             	push   0x10(%ebp)
437564:	ff 75 0c             	push   0xc(%ebp)
437567:	50                   	push   %eax
437568:	e8 b6 21 00 00       	call   0x439723
43756d:	8b d0                	mov    %eax,%edx
43756f:	83 c4 14             	add    $0x14,%esp
437572:	83 fa 04             	cmp    $0x4,%edx
437575:	77 1a                	ja     0x437591
437577:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43757a:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
437580:	76 05                	jbe    0x437587
437582:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
437587:	8b 45 08             	mov    0x8(%ebp),%eax
43758a:	85 c0                	test   %eax,%eax
43758c:	74 03                	je     0x437591
43758e:	66 89 08             	mov    %cx,(%eax)
437591:	8b c2                	mov    %edx,%eax
437593:	c9                   	leave
437594:	c3                   	ret
437595:	8b ff                	mov    %edi,%edi
437597:	55                   	push   %ebp
437598:	8b ec                	mov    %esp,%ebp
43759a:	51                   	push   %ecx
43759b:	51                   	push   %ecx
43759c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4375a0:	53                   	push   %ebx
4375a1:	56                   	push   %esi
4375a2:	57                   	push   %edi
4375a3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4375a6:	8b 3f                	mov    (%edi),%edi
4375a8:	0f 84 a4 00 00 00    	je     0x437652
4375ae:	8b 5d 10             	mov    0x10(%ebp),%ebx
4375b1:	8b 75 08             	mov    0x8(%ebp),%esi
4375b4:	85 db                	test   %ebx,%ebx
4375b6:	74 6b                	je     0x437623
4375b8:	57                   	push   %edi
4375b9:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4375bc:	e8 65 ff ff ff       	call   0x437526
4375c1:	ff 75 18             	push   0x18(%ebp)
4375c4:	ff 75 14             	push   0x14(%ebp)
4375c7:	50                   	push   %eax
4375c8:	8d 45 f8             	lea    -0x8(%ebp),%eax
4375cb:	57                   	push   %edi
4375cc:	50                   	push   %eax
4375cd:	e8 51 21 00 00       	call   0x439723
4375d2:	8b d0                	mov    %eax,%edx
4375d4:	83 c4 14             	add    $0x14,%esp
4375d7:	83 fa ff             	cmp    $0xffffffff,%edx
4375da:	74 5e                	je     0x43763a
4375dc:	85 d2                	test   %edx,%edx
4375de:	74 51                	je     0x437631
4375e0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4375e3:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
4375e9:	76 2b                	jbe    0x437616
4375eb:	83 fb 01             	cmp    $0x1,%ebx
4375ee:	76 33                	jbe    0x437623
4375f0:	81 e9 00 00 01 00    	sub    $0x10000,%ecx
4375f6:	4b                   	dec    %ebx
4375f7:	8b c1                	mov    %ecx,%eax
4375f9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4375fc:	c1 e8 0a             	shr    $0xa,%eax
4375ff:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
437605:	0d 00 d8 00 00       	or     $0xd800,%eax
43760a:	66 89 06             	mov    %ax,(%esi)
43760d:	83 c6 02             	add    $0x2,%esi
437610:	81 c9 00 dc 00 00    	or     $0xdc00,%ecx
437616:	66 89 0e             	mov    %cx,(%esi)