402699:	bf 7a 00 07 80       	mov    $0x8007007a,%edi
40269e:	57                   	push   %edi
40269f:	68 a1 05 00 00       	push   $0x5a1
4026a4:	68 90 b5 44 00       	push   $0x44b590
4026a9:	e8 25 11 00 00       	call   0x4037d3
4026ae:	eb 33                	jmp    0x4026e3
4026b0:	85 f6                	test   %esi,%esi
4026b2:	74 2f                	je     0x4026e3
4026b4:	8b 7d 0c             	mov    0xc(%ebp),%edi
4026b7:	0f b7 03             	movzwl (%ebx),%eax
4026ba:	50                   	push   %eax
4026bb:	e8 74 ee ff ff       	call   0x401534
4026c0:	8a d0                	mov    %al,%dl
4026c2:	8d 5b 04             	lea    0x4(%ebx),%ebx
4026c5:	c0 e2 04             	shl    $0x4,%dl
4026c8:	88 17                	mov    %dl,(%edi)
4026ca:	0f b7 43 fe          	movzwl -0x2(%ebx),%eax
4026ce:	50                   	push   %eax
4026cf:	e8 60 ee ff ff       	call   0x401534
4026d4:	24 0f                	and    $0xf,%al
4026d6:	0a c2                	or     %dl,%al
4026d8:	88 07                	mov    %al,(%edi)
4026da:	47                   	inc    %edi
4026db:	83 ee 01             	sub    $0x1,%esi
4026de:	75 d7                	jne    0x4026b7
4026e0:	8b 7d fc             	mov    -0x4(%ebp),%edi
4026e3:	8b c7                	mov    %edi,%eax
4026e5:	5f                   	pop    %edi
4026e6:	5e                   	pop    %esi
4026e7:	5b                   	pop    %ebx
4026e8:	8b e5                	mov    %ebp,%esp
4026ea:	5d                   	pop    %ebp
4026eb:	c2 0c 00             	ret    $0xc
4026ee:	55                   	push   %ebp
4026ef:	8b ec                	mov    %esp,%ebp
4026f1:	56                   	push   %esi
4026f2:	8b 75 0c             	mov    0xc(%ebp),%esi
4026f5:	57                   	push   %edi
4026f6:	33 ff                	xor    %edi,%edi
4026f8:	8d 04 75 01 00 00 00 	lea    0x1(,%esi,2),%eax
4026ff:	39 45 14             	cmp    %eax,0x14(%ebp)
402702:	73 07                	jae    0x40270b
402704:	bf 7a 00 07 80       	mov    $0x8007007a,%edi
402709:	eb 4a                	jmp    0x402755
40270b:	8b 55 10             	mov    0x10(%ebp),%edx
40270e:	85 f6                	test   %esi,%esi
402710:	74 3e                	je     0x402750
402712:	53                   	push   %ebx
402713:	8b 5d 08             	mov    0x8(%ebp),%ebx
402716:	8a 03                	mov    (%ebx),%al
402718:	c0 e8 04             	shr    $0x4,%al
40271b:	3c 0a                	cmp    $0xa,%al
40271d:	0f b6 c0             	movzbl %al,%eax
402720:	1b c9                	sbb    %ecx,%ecx
402722:	83 e1 f9             	and    $0xfffffff9,%ecx
402725:	83 c1 37             	add    $0x37,%ecx
402728:	66 03 c8             	add    %ax,%cx
40272b:	66 89 0a             	mov    %cx,(%edx)
40272e:	8a 03                	mov    (%ebx),%al
402730:	24 0f                	and    $0xf,%al
402732:	3c 0a                	cmp    $0xa,%al
402734:	0f b6 c0             	movzbl %al,%eax
402737:	1b c9                	sbb    %ecx,%ecx
402739:	83 e1 f9             	and    $0xfffffff9,%ecx
40273c:	83 c1 37             	add    $0x37,%ecx
40273f:	66 03 c8             	add    %ax,%cx
402742:	66 89 4a 02          	mov    %cx,0x2(%edx)
402746:	83 c2 04             	add    $0x4,%edx
402749:	43                   	inc    %ebx
40274a:	83 ee 01             	sub    $0x1,%esi
40274d:	75 c7                	jne    0x402716
40274f:	5b                   	pop    %ebx
402750:	33 c0                	xor    %eax,%eax
402752:	66 89 02             	mov    %ax,(%edx)
402755:	8b c7                	mov    %edi,%eax
402757:	5f                   	pop    %edi
402758:	5e                   	pop    %esi
402759:	5d                   	pop    %ebp
40275a:	c2 10 00             	ret    $0x10
40275d:	55                   	push   %ebp
40275e:	8b ec                	mov    %esp,%ebp
402760:	56                   	push   %esi
402761:	33 f6                	xor    %esi,%esi
402763:	39 75 08             	cmp    %esi,0x8(%ebp)
402766:	74 1f                	je     0x402787
402768:	ff 75 08             	push   0x8(%ebp)
40276b:	e8 e1 13 00 00       	call   0x403b51
402770:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402773:	89 01                	mov    %eax,(%ecx)
402775:	83 f8 ff             	cmp    $0xffffffff,%eax
402778:	75 07                	jne    0x402781
40277a:	be 05 40 00 80       	mov    $0x80004005,%esi
40277f:	eb 0b                	jmp    0x40278c
402781:	d1 e8                	shr    $1,%eax
402783:	89 01                	mov    %eax,(%ecx)
402785:	eb 05                	jmp    0x40278c
402787:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40278a:	89 31                	mov    %esi,(%ecx)
40278c:	8b c6                	mov    %esi,%eax
40278e:	5e                   	pop    %esi
40278f:	5d                   	pop    %ebp
402790:	c2 08 00             	ret    $0x8
402793:	55                   	push   %ebp
402794:	8b ec                	mov    %esp,%ebp
402796:	57                   	push   %edi
402797:	ff 75 08             	push   0x8(%ebp)
40279a:	e8 17 00 00 00       	call   0x4027b6
40279f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4027a3:	8b f8                	mov    %eax,%edi
4027a5:	74 08                	je     0x4027af
4027a7:	ff 75 08             	push   0x8(%ebp)
4027aa:	e8 ea 11 00 00       	call   0x403999
4027af:	8b c7                	mov    %edi,%eax
4027b1:	5f                   	pop    %edi
4027b2:	5d                   	pop    %ebp
4027b3:	c2 04 00             	ret    $0x4
4027b6:	55                   	push   %ebp
4027b7:	8b ec                	mov    %esp,%ebp
4027b9:	53                   	push   %ebx
4027ba:	56                   	push   %esi
4027bb:	8b 75 08             	mov    0x8(%ebp),%esi
4027be:	33 db                	xor    %ebx,%ebx
4027c0:	85 f6                	test   %esi,%esi
4027c2:	74 1e                	je     0x4027e2
4027c4:	56                   	push   %esi
4027c5:	e8 87 13 00 00       	call   0x403b51
4027ca:	83 f8 ff             	cmp    $0xffffffff,%eax
4027cd:	75 07                	jne    0x4027d6
4027cf:	bb 57 00 07 80       	mov    $0x80070057,%ebx
4027d4:	eb 0c                	jmp    0x4027e2
4027d6:	85 c0                	test   %eax,%eax
4027d8:	74 08                	je     0x4027e2
4027da:	88 1e                	mov    %bl,(%esi)
4027dc:	46                   	inc    %esi
4027dd:	83 e8 01             	sub    $0x1,%eax
4027e0:	75 f8                	jne    0x4027da
4027e2:	5e                   	pop    %esi
4027e3:	8b c3                	mov    %ebx,%eax
4027e5:	5b                   	pop    %ebx
4027e6:	5d                   	pop    %ebp
4027e7:	c2 04 00             	ret    $0x4
4027ea:	55                   	push   %ebp
4027eb:	8b ec                	mov    %esp,%ebp
4027ed:	ff 75 08             	push   0x8(%ebp)
4027f0:	e8 5c 13 00 00       	call   0x403b51
4027f5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4027f8:	8b d0                	mov    %eax,%edx
4027fa:	b8 05 40 00 80       	mov    $0x80004005,%eax
4027ff:	89 11                	mov    %edx,(%ecx)
402801:	33 c9                	xor    %ecx,%ecx
402803:	83 fa ff             	cmp    $0xffffffff,%edx
402806:	0f 45 c1             	cmovne %ecx,%eax
402809:	5d                   	pop    %ebp
40280a:	c2 08 00             	ret    $0x8
40280d:	55                   	push   %ebp
40280e:	8b ec                	mov    %esp,%ebp
402810:	51                   	push   %ecx
402811:	51                   	push   %ecx
402812:	53                   	push   %ebx
402813:	56                   	push   %esi
402814:	33 db                	xor    %ebx,%ebx
402816:	8d 45 fc             	lea    -0x4(%ebp),%eax
402819:	53                   	push   %ebx
40281a:	53                   	push   %ebx
40281b:	ff 75 10             	push   0x10(%ebp)
40281e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402821:	50                   	push   %eax
402822:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402825:	e8 88 ec ff ff       	call   0x4014b2
40282a:	8b f0                	mov    %eax,%esi
40282c:	85 f6                	test   %esi,%esi
40282e:	78 33                	js     0x402863
402830:	8d 45 f8             	lea    -0x8(%ebp),%eax
402833:	50                   	push   %eax
402834:	ff 75 14             	push   0x14(%ebp)
402837:	ff 75 fc             	push   -0x4(%ebp)
40283a:	eb 1b                	jmp    0x402857
40283c:	53                   	push   %ebx
40283d:	50                   	push   %eax
40283e:	ff 75 0c             	push   0xc(%ebp)
402841:	ff 75 08             	push   0x8(%ebp)
402844:	e8 a4 fd ff ff       	call   0x4025ed
402849:	8b f0                	mov    %eax,%esi
40284b:	85 f6                	test   %esi,%esi
40284d:	78 14                	js     0x402863
40284f:	8d 45 f8             	lea    -0x8(%ebp),%eax
402852:	50                   	push   %eax
402853:	ff 75 14             	push   0x14(%ebp)
402856:	53                   	push   %ebx
402857:	e8 87 f2 02 00       	call   0x431ae3
40285c:	83 c4 0c             	add    $0xc,%esp
40285f:	85 c0                	test   %eax,%eax
402861:	75 d9                	jne    0x40283c
402863:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
402866:	74 08                	je     0x402870
402868:	ff 75 fc             	push   -0x4(%ebp)
40286b:	e8 29 11 00 00       	call   0x403999
402870:	8b c6                	mov    %esi,%eax
402872:	5e                   	pop    %esi
402873:	5b                   	pop    %ebx
402874:	8b e5                	mov    %ebp,%esp
402876:	5d                   	pop    %ebp
402877:	c2 10 00             	ret    $0x10
40287a:	55                   	push   %ebp
40287b:	8b ec                	mov    %esp,%ebp
40287d:	51                   	push   %ecx
40287e:	51                   	push   %ecx
40287f:	8d 45 f8             	lea    -0x8(%ebp),%eax
402882:	0f 57 c0             	xorps  %xmm0,%xmm0
402885:	50                   	push   %eax
402886:	ff 75 0c             	push   0xc(%ebp)
402889:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
40288e:	ff 75 08             	push   0x8(%ebp)
402891:	e8 37 00 00 00       	call   0x4028cd
402896:	8b d0                	mov    %eax,%edx
402898:	85 d2                	test   %edx,%edx
40289a:	78 29                	js     0x4028c5
40289c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40289f:	56                   	push   %esi
4028a0:	8b 75 f8             	mov    -0x8(%ebp),%esi
4028a3:	8b c6                	mov    %esi,%eax
4028a5:	05 00 00 00 80       	add    $0x80000000,%eax
4028aa:	83 d1 00             	adc    $0x0,%ecx
4028ad:	85 c9                	test   %ecx,%ecx
4028af:	77 0e                	ja     0x4028bf
4028b1:	72 05                	jb     0x4028b8
4028b3:	83 f8 ff             	cmp    $0xffffffff,%eax
4028b6:	77 07                	ja     0x4028bf
4028b8:	8b 45 10             	mov    0x10(%ebp),%eax
4028bb:	89 30                	mov    %esi,(%eax)
4028bd:	eb 05                	jmp    0x4028c4
4028bf:	ba 0a 00 02 80       	mov    $0x8002000a,%edx
4028c4:	5e                   	pop    %esi
4028c5:	8b c2                	mov    %edx,%eax
4028c7:	8b e5                	mov    %ebp,%esp
4028c9:	5d                   	pop    %ebp
4028ca:	c2 0c 00             	ret    $0xc
4028cd:	55                   	push   %ebp
4028ce:	8b ec                	mov    %esp,%ebp
4028d0:	83 ec 10             	sub    $0x10,%esp
4028d3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4028d6:	33 d2                	xor    %edx,%edx
4028d8:	53                   	push   %ebx
4028d9:	33 db                	xor    %ebx,%ebx
4028db:	42                   	inc    %edx
4028dc:	89 55 f0             	mov    %edx,-0x10(%ebp)
4028df:	8b c3                	mov    %ebx,%eax
4028e1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4028e4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4028e7:	56                   	push   %esi
4028e8:	8b 75 08             	mov    0x8(%ebp),%esi
4028eb:	57                   	push   %edi
4028ec:	8b fb                	mov    %ebx,%edi
4028ee:	89 7d f4             	mov    %edi,-0xc(%ebp)
4028f1:	85 c9                	test   %ecx,%ecx
4028f3:	75 1c                	jne    0x402911
4028f5:	56                   	push   %esi
4028f6:	ff 15 f8 b0 44 00    	call   *0x44b0f8
4028fc:	8b c8                	mov    %eax,%ecx
4028fe:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402901:	85 c9                	test   %ecx,%ecx
402903:	75 07                	jne    0x40290c
402905:	bb 57 00 07 80       	mov    $0x80070057,%ebx
40290a:	eb 74                	jmp    0x402980
40290c:	33 d2                	xor    %edx,%edx
40290e:	8b c3                	mov    %ebx,%eax
402910:	42                   	inc    %edx
402911:	6a 2d                	push   $0x2d
402913:	5f                   	pop    %edi
402914:	66 3b 3e             	cmp    (%esi),%di
402917:	8b fb                	mov    %ebx,%edi
402919:	75 0f                	jne    0x40292a
40291b:	3b ca                	cmp    %edx,%ecx
40291d:	76 e6                	jbe    0x402905
40291f:	8b c2                	mov    %edx,%eax
402921:	83 ca ff             	or     $0xffffffff,%edx
402924:	89 45 fc             	mov    %eax,-0x4(%ebp)
402927:	89 55 f0             	mov    %edx,-0x10(%ebp)
40292a:	3b c1                	cmp    %ecx,%eax
40292c:	73 47                	jae    0x402975
40292e:	0f b7 04 46          	movzwl (%esi,%eax,2),%eax
402932:	83 e8 30             	sub    $0x30,%eax
402935:	78 ce                	js     0x402905
402937:	83 f8 09             	cmp    $0x9,%eax
40293a:	7f c9                	jg     0x402905
40293c:	0f af c2             	imul   %edx,%eax
40293f:	53                   	push   %ebx
402940:	6a 0a                	push   $0xa
402942:	ff 75 f4             	push   -0xc(%ebp)
402945:	99                   	cltd
402946:	8b f0                	mov    %eax,%esi
402948:	8b fa                	mov    %edx,%edi
40294a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40294d:	50                   	push   %eax
40294e:	e8 2d b7 02 00       	call   0x42e080
402953:	03 f0                	add    %eax,%esi
402955:	89 75 f8             	mov    %esi,-0x8(%ebp)
402958:	13 fa                	adc    %edx,%edi
40295a:	8b 55 f0             	mov    -0x10(%ebp),%edx
40295d:	8b c7                	mov    %edi,%eax
40295f:	89 7d f4             	mov    %edi,-0xc(%ebp)
402962:	33 c2                	xor    %edx,%eax
402964:	7c 25                	jl     0x40298b
402966:	8b 45 fc             	mov    -0x4(%ebp),%eax
402969:	8b 75 08             	mov    0x8(%ebp),%esi
40296c:	40                   	inc    %eax
40296d:	89 45 fc             	mov    %eax,-0x4(%ebp)
402970:	3b 45 0c             	cmp    0xc(%ebp),%eax
402973:	72 b9                	jb     0x40292e
402975:	8b 4d 10             	mov    0x10(%ebp),%ecx
402978:	8b 45 f8             	mov    -0x8(%ebp),%eax
40297b:	89 01                	mov    %eax,(%ecx)
40297d:	89 79 04             	mov    %edi,0x4(%ecx)
402980:	5f                   	pop    %edi
402981:	5e                   	pop    %esi
402982:	8b c3                	mov    %ebx,%eax
402984:	5b                   	pop    %ebx
402985:	8b e5                	mov    %ebp,%esp
402987:	5d                   	pop    %ebp
402988:	c2 0c 00             	ret    $0xc
40298b:	bb 0a 00 02 80       	mov    $0x8002000a,%ebx
402990:	eb ee                	jmp    0x402980
402992:	55                   	push   %ebp
402993:	8b ec                	mov    %esp,%ebp
402995:	51                   	push   %ecx
402996:	51                   	push   %ecx
402997:	8d 45 f8             	lea    -0x8(%ebp),%eax
40299a:	0f 57 c0             	xorps  %xmm0,%xmm0
40299d:	50                   	push   %eax
40299e:	ff 75 0c             	push   0xc(%ebp)
4029a1:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
4029a6:	ff 75 08             	push   0x8(%ebp)
4029a9:	e8 74 00 00 00       	call   0x402a22
4029ae:	8b c8                	mov    %eax,%ecx
4029b0:	85 c9                	test   %ecx,%ecx
4029b2:	78 20                	js     0x4029d4
4029b4:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4029b8:	8b 55 f8             	mov    -0x8(%ebp),%edx
4029bb:	72 11                	jb     0x4029ce
4029bd:	77 08                	ja     0x4029c7
4029bf:	81 fa ff ff 00 00    	cmp    $0xffff,%edx
4029c5:	76 07                	jbe    0x4029ce
4029c7:	b9 0a 00 02 80       	mov    $0x8002000a,%ecx
4029cc:	eb 06                	jmp    0x4029d4
4029ce:	8b 45 10             	mov    0x10(%ebp),%eax
4029d1:	66 89 10             	mov    %dx,(%eax)
4029d4:	8b c1                	mov    %ecx,%eax
4029d6:	8b e5                	mov    %ebp,%esp
4029d8:	5d                   	pop    %ebp
4029d9:	c2 0c 00             	ret    $0xc