402762:	74 10                	je     0x402774
402764:	83 c6 04             	add    $0x4,%esi
402767:	81 fe f0 10 40 00    	cmp    $0x4010f0,%esi
40276d:	7c e6                	jl     0x402755
40276f:	33 c0                	xor    %eax,%eax
402771:	40                   	inc    %eax
402772:	eb 02                	jmp    0x402776
402774:	33 c0                	xor    %eax,%eax
402776:	5e                   	pop    %esi
402777:	5d                   	pop    %ebp
402778:	c2 04 00             	ret    $0x4
40277b:	8b ff                	mov    %edi,%edi
40277d:	55                   	push   %ebp
40277e:	8b ec                	mov    %esp,%ebp
402780:	51                   	push   %ecx
402781:	33 c9                	xor    %ecx,%ecx
402783:	8d 45 fc             	lea    -0x4(%ebp),%eax
402786:	51                   	push   %ecx
402787:	51                   	push   %ecx
402788:	51                   	push   %ecx
402789:	51                   	push   %ecx
40278a:	51                   	push   %ecx
40278b:	51                   	push   %ecx
40278c:	51                   	push   %ecx
40278d:	50                   	push   %eax
40278e:	51                   	push   %ecx
40278f:	51                   	push   %ecx
402790:	51                   	push   %ecx
402791:	ff 75 08             	push   0x8(%ebp)
402794:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402797:	ff 15 f0 70 40 00    	call   *0x4070f0
40279d:	85 c0                	test   %eax,%eax
40279f:	79 04                	jns    0x4027a5
4027a1:	33 c0                	xor    %eax,%eax
4027a3:	eb 09                	jmp    0x4027ae
4027a5:	33 c0                	xor    %eax,%eax
4027a7:	3b 45 fc             	cmp    -0x4(%ebp),%eax
4027aa:	1b c0                	sbb    %eax,%eax
4027ac:	f7 d8                	neg    %eax
4027ae:	c9                   	leave
4027af:	c2 04 00             	ret    $0x4
4027b2:	8b ff                	mov    %edi,%edi
4027b4:	55                   	push   %ebp
4027b5:	8b ec                	mov    %esp,%ebp
4027b7:	51                   	push   %ecx
4027b8:	51                   	push   %ecx
4027b9:	53                   	push   %ebx
4027ba:	56                   	push   %esi
4027bb:	57                   	push   %edi
4027bc:	33 db                	xor    %ebx,%ebx
4027be:	8d 45 fc             	lea    -0x4(%ebp),%eax
4027c1:	53                   	push   %ebx
4027c2:	53                   	push   %ebx
4027c3:	53                   	push   %ebx
4027c4:	53                   	push   %ebx
4027c5:	50                   	push   %eax
4027c6:	53                   	push   %ebx
4027c7:	53                   	push   %ebx
4027c8:	53                   	push   %ebx
4027c9:	53                   	push   %ebx
4027ca:	53                   	push   %ebx
4027cb:	53                   	push   %ebx
4027cc:	ff 75 08             	push   0x8(%ebp)
4027cf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4027d2:	ff 15 f0 70 40 00    	call   *0x4070f0
4027d8:	85 c0                	test   %eax,%eax
4027da:	75 56                	jne    0x402832
4027dc:	33 ff                	xor    %edi,%edi
4027de:	47                   	inc    %edi
4027df:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4027e2:	75 43                	jne    0x402827
4027e4:	68 00 20 00 00       	push   $0x2000
4027e9:	c7 45 f8 00 10 00 00 	movl   $0x1000,-0x8(%ebp)
4027f0:	ff 15 84 71 40 00    	call   *0x407184
4027f6:	8b f0                	mov    %eax,%esi
4027f8:	59                   	pop    %ecx
4027f9:	85 f6                	test   %esi,%esi
4027fb:	74 35                	je     0x402832
4027fd:	53                   	push   %ebx
4027fe:	53                   	push   %ebx
4027ff:	53                   	push   %ebx
402800:	53                   	push   %ebx
402801:	8d 45 f8             	lea    -0x8(%ebp),%eax
402804:	50                   	push   %eax
402805:	56                   	push   %esi
402806:	53                   	push   %ebx
402807:	ff 75 08             	push   0x8(%ebp)
40280a:	ff 15 ec 70 40 00    	call   *0x4070ec
402810:	85 c0                	test   %eax,%eax
402812:	75 05                	jne    0x402819
402814:	66 39 1e             	cmp    %bx,(%esi)
402817:	75 02                	jne    0x40281b
402819:	8b fb                	mov    %ebx,%edi
40281b:	56                   	push   %esi
40281c:	ff 15 64 71 40 00    	call   *0x407164
402822:	59                   	pop    %ecx
402823:	8b c7                	mov    %edi,%eax
402825:	eb 0d                	jmp    0x402834
402827:	33 c0                	xor    %eax,%eax
402829:	3b 45 fc             	cmp    -0x4(%ebp),%eax
40282c:	1b c0                	sbb    %eax,%eax
40282e:	f7 d8                	neg    %eax
402830:	eb 02                	jmp    0x402834
402832:	33 c0                	xor    %eax,%eax
402834:	5f                   	pop    %edi
402835:	5e                   	pop    %esi
402836:	5b                   	pop    %ebx
402837:	c9                   	leave
402838:	c2 04 00             	ret    $0x4
40283b:	8b ff                	mov    %edi,%edi
40283d:	55                   	push   %ebp
40283e:	8b ec                	mov    %esp,%ebp
402840:	51                   	push   %ecx
402841:	53                   	push   %ebx
402842:	68 00 20 00 00       	push   $0x2000
402847:	8b d9                	mov    %ecx,%ebx
402849:	ff 15 84 71 40 00    	call   *0x407184
40284f:	89 45 fc             	mov    %eax,-0x4(%ebp)
402852:	59                   	pop    %ecx
402853:	85 c0                	test   %eax,%eax
402855:	75 07                	jne    0x40285e
402857:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40285c:	eb 4e                	jmp    0x4028ac
40285e:	56                   	push   %esi
40285f:	57                   	push   %edi
402860:	8b 7d 08             	mov    0x8(%ebp),%edi
402863:	66 83 3f 3d          	cmpw   $0x3d,(%edi)
402867:	75 33                	jne    0x40289c
402869:	57                   	push   %edi
40286a:	8b cb                	mov    %ebx,%ecx
40286c:	e8 b9 f9 ff ff       	call   0x40222a
402871:	8b f0                	mov    %eax,%esi
402873:	85 f6                	test   %esi,%esi
402875:	78 27                	js     0x40289e
402877:	8b cb                	mov    %ebx,%ecx
402879:	e8 7f f9 ff ff       	call   0x4021fd
40287e:	ff 75 fc             	push   -0x4(%ebp)
402881:	8b cb                	mov    %ebx,%ecx
402883:	e8 a2 f9 ff ff       	call   0x40222a
402888:	8b f0                	mov    %eax,%esi
40288a:	85 f6                	test   %esi,%esi
40288c:	78 10                	js     0x40289e
40288e:	57                   	push   %edi
40288f:	8b cb                	mov    %ebx,%ecx
402891:	e8 94 f9 ff ff       	call   0x40222a
402896:	8b f0                	mov    %eax,%esi
402898:	85 f6                	test   %esi,%esi
40289a:	78 02                	js     0x40289e
40289c:	33 f6                	xor    %esi,%esi
40289e:	ff 75 fc             	push   -0x4(%ebp)
4028a1:	ff 15 64 71 40 00    	call   *0x407164
4028a7:	59                   	pop    %ecx
4028a8:	5f                   	pop    %edi
4028a9:	8b c6                	mov    %esi,%eax
4028ab:	5e                   	pop    %esi
4028ac:	5b                   	pop    %ebx
4028ad:	c9                   	leave
4028ae:	c2 04 00             	ret    $0x4
4028b1:	8b ff                	mov    %edi,%edi
4028b3:	55                   	push   %ebp
4028b4:	8b ec                	mov    %esp,%ebp
4028b6:	83 ec 60             	sub    $0x60,%esp
4028b9:	a1 54 60 40 00       	mov    0x406054,%eax
4028be:	33 c5                	xor    %ebp,%eax
4028c0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4028c3:	8b 45 0c             	mov    0xc(%ebp),%eax
4028c6:	53                   	push   %ebx
4028c7:	56                   	push   %esi
4028c8:	57                   	push   %edi
4028c9:	8b 7d 08             	mov    0x8(%ebp),%edi
4028cc:	33 f6                	xor    %esi,%esi
4028ce:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4028d1:	8b d9                	mov    %ecx,%ebx
4028d3:	89 75 a0             	mov    %esi,-0x60(%ebp)
4028d6:	85 ff                	test   %edi,%edi
4028d8:	0f 84 4a 01 00 00    	je     0x402a28
4028de:	85 c0                	test   %eax,%eax
4028e0:	0f 84 42 01 00 00    	je     0x402a28
4028e6:	8b cf                	mov    %edi,%ecx
4028e8:	89 30                	mov    %esi,(%eax)
4028ea:	8d 51 02             	lea    0x2(%ecx),%edx
4028ed:	66 8b 01             	mov    (%ecx),%ax
4028f0:	83 c1 02             	add    $0x2,%ecx
4028f3:	66 3b c6             	cmp    %si,%ax
4028f6:	75 f5                	jne    0x4028ed
4028f8:	2b ca                	sub    %edx,%ecx
4028fa:	89 75 b0             	mov    %esi,-0x50(%ebp)
4028fd:	d1 f9                	sar    $1,%ecx
4028ff:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
402906:	89 45 b4             	mov    %eax,-0x4c(%ebp)
402909:	8d 04 8d 04 00 00 00 	lea    0x4(,%ecx,4),%eax
402910:	50                   	push   %eax
402911:	ff 15 00 70 40 00    	call   *0x407000
402917:	89 45 b8             	mov    %eax,-0x48(%ebp)
40291a:	85 c0                	test   %eax,%eax
40291c:	0f 84 f6 00 00 00    	je     0x402a18
402922:	89 3b                	mov    %edi,(%ebx)
402924:	0f b7 07             	movzwl (%edi),%eax
402927:	8b c8                	mov    %eax,%ecx
402929:	66 85 c0             	test   %ax,%ax
40292c:	0f 84 cc 00 00 00    	je     0x4029fe
402932:	6a 25                	push   $0x25
402934:	59                   	pop    %ecx
402935:	57                   	push   %edi
402936:	66 3b c1             	cmp    %cx,%ax
402939:	75 11                	jne    0x40294c
40293b:	ff 15 14 71 40 00    	call   *0x407114
402941:	6a 25                	push   $0x25
402943:	5a                   	pop    %edx
402944:	89 03                	mov    %eax,(%ebx)
402946:	66 39 10             	cmp    %dx,(%eax)
402949:	75 27                	jne    0x402972
40294b:	50                   	push   %eax
40294c:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40294f:	e8 5c f5 ff ff       	call   0x401eb0
402954:	85 c0                	test   %eax,%eax
402956:	0f 84 bc 00 00 00    	je     0x402a18
40295c:	ff 33                	push   (%ebx)
40295e:	ff 15 14 71 40 00    	call   *0x407114
402964:	8b f8                	mov    %eax,%edi
402966:	89 3b                	mov    %edi,(%ebx)
402968:	0f b7 0f             	movzwl (%edi),%ecx
40296b:	8b c1                	mov    %ecx,%eax
40296d:	66 85 c9             	test   %cx,%cx
402970:	eb ba                	jmp    0x40292c
402972:	8b c8                	mov    %eax,%ecx
402974:	e8 a0 f7 ff ff       	call   0x402119
402979:	89 45 a8             	mov    %eax,-0x58(%ebp)
40297c:	85 c0                	test   %eax,%eax
40297e:	74 70                	je     0x4029f0
402980:	2b 03                	sub    (%ebx),%eax
402982:	d1 f8                	sar    $1,%eax
402984:	83 f8 1f             	cmp    $0x1f,%eax
402987:	7f 6e                	jg     0x4029f7
402989:	40                   	inc    %eax
40298a:	50                   	push   %eax
40298b:	ff 33                	push   (%ebx)
40298d:	8d 45 bc             	lea    -0x44(%ebp),%eax
402990:	50                   	push   %eax
402991:	ff 15 20 71 40 00    	call   *0x407120
402997:	8b 4b 04             	mov    0x4(%ebx),%ecx
40299a:	8d 45 bc             	lea    -0x44(%ebp),%eax
40299d:	50                   	push   %eax
40299e:	e8 13 f7 ff ff       	call   0x4020b6
4029a3:	8b f8                	mov    %eax,%edi
4029a5:	85 ff                	test   %edi,%edi
4029a7:	74 47                	je     0x4029f0
4029a9:	89 75 ac             	mov    %esi,-0x54(%ebp)
4029ac:	eb 10                	jmp    0x4029be
4029ae:	57                   	push   %edi
4029af:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4029b2:	e8 f9 f4 ff ff       	call   0x401eb0
4029b7:	85 c0                	test   %eax,%eax
4029b9:	74 31                	je     0x4029ec
4029bb:	83 c7 02             	add    $0x2,%edi
4029be:	66 39 37             	cmp    %si,(%edi)
4029c1:	75 eb                	jne    0x4029ae
4029c3:	33 ff                	xor    %edi,%edi
4029c5:	47                   	inc    %edi
4029c6:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4029c9:	e8 c8 1d 00 00       	call   0x404796
4029ce:	85 ff                	test   %edi,%edi
4029d0:	74 46                	je     0x402a18
4029d2:	8b 7d a8             	mov    -0x58(%ebp),%edi
4029d5:	39 3b                	cmp    %edi,(%ebx)
4029d7:	74 83                	je     0x40295c
4029d9:	ff 33                	push   (%ebx)
4029db:	ff 15 14 71 40 00    	call   *0x407114
4029e1:	89 03                	mov    %eax,(%ebx)
4029e3:	3b c7                	cmp    %edi,%eax
4029e5:	75 f2                	jne    0x4029d9
4029e7:	e9 70 ff ff ff       	jmp    0x40295c
4029ec:	8b fe                	mov    %esi,%edi
4029ee:	eb d6                	jmp    0x4029c6
4029f0:	be 09 00 02 80       	mov    $0x80020009,%esi
4029f5:	eb 26                	jmp    0x402a1d
4029f7:	be 05 40 00 80       	mov    $0x80004005,%esi
4029fc:	eb 1f                	jmp    0x402a1d
4029fe:	57                   	push   %edi
4029ff:	8d 4d b0             	lea    -0x50(%ebp),%ecx
402a02:	e8 a9 f4 ff ff       	call   0x401eb0
402a07:	85 c0                	test   %eax,%eax
402a09:	74 0d                	je     0x402a18
402a0b:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
402a0e:	8b 45 b8             	mov    -0x48(%ebp),%eax
402a11:	89 75 b8             	mov    %esi,-0x48(%ebp)
402a14:	89 01                	mov    %eax,(%ecx)
402a16:	eb 05                	jmp    0x402a1d
402a18:	be 0e 00 07 80       	mov    $0x8007000e,%esi
402a1d:	ff 75 b8             	push   -0x48(%ebp)
402a20:	ff 15 0c 70 40 00    	call   *0x40700c
402a26:	eb 05                	jmp    0x402a2d
402a28:	be 03 40 00 80       	mov    $0x80004003,%esi
402a2d:	8d 4d a0             	lea    -0x60(%ebp),%ecx
402a30:	e8 61 1d 00 00       	call   0x404796
402a35:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402a38:	8b c6                	mov    %esi,%eax
402a3a:	5f                   	pop    %edi
402a3b:	5e                   	pop    %esi
402a3c:	33 cd                	xor    %ebp,%ecx
402a3e:	5b                   	pop    %ebx
402a3f:	e8 5c 25 00 00       	call   0x404fa0
402a44:	c9                   	leave
402a45:	c2 08 00             	ret    $0x8
402a48:	8b ff                	mov    %edi,%edi
402a4a:	55                   	push   %ebp
402a4b:	8b ec                	mov    %esp,%ebp
402a4d:	83 ec 0c             	sub    $0xc,%esp
402a50:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
402a54:	53                   	push   %ebx
402a55:	56                   	push   %esi
402a56:	57                   	push   %edi
402a57:	68 00 20 00 00       	push   $0x2000
402a5c:	8b d9                	mov    %ecx,%ebx
402a5e:	ff 15 84 71 40 00    	call   *0x407184
402a64:	8b f8                	mov    %eax,%edi
402a66:	59                   	pop    %ecx
402a67:	85 ff                	test   %edi,%edi
402a69:	75 0a                	jne    0x402a75
402a6b:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
402a70:	e9 ec 00 00 00       	jmp    0x402b61
402a75:	8d 45 f8             	lea    -0x8(%ebp),%eax
402a78:	8b cb                	mov    %ebx,%ecx
402a7a:	50                   	push   %eax
402a7b:	ff 75 08             	push   0x8(%ebp)
402a7e:	e8 2e fe ff ff       	call   0x4028b1
402a83:	8b f0                	mov    %eax,%esi
402a85:	85 f6                	test   %esi,%esi
402a87:	0f 88 ca 00 00 00    	js     0x402b57
402a8d:	8b 45 f8             	mov    -0x8(%ebp),%eax
402a90:	89 03                	mov    %eax,(%ebx)
402a92:	e9 a5 00 00 00       	jmp    0x402b3c
402a97:	57                   	push   %edi
402a98:	8b cb                	mov    %ebx,%ecx
402a9a:	e8 8b f7 ff ff       	call   0x40222a
402a9f:	8b f0                	mov    %eax,%esi
402aa1:	85 f6                	test   %esi,%esi
402aa3:	0f 88 a5 00 00 00    	js     0x402b4e
402aa9:	33 f6                	xor    %esi,%esi
402aab:	ff 34 f5 10 10 40 00 	push   0x401010(,%esi,8)
402ab2:	57                   	push   %edi
402ab3:	ff 15 1c 71 40 00    	call   *0x40711c
402ab9:	85 c0                	test   %eax,%eax
402abb:	74 0a                	je     0x402ac7
402abd:	46                   	inc    %esi
402abe:	83 fe 0e             	cmp    $0xe,%esi
402ac1:	72 e8                	jb     0x402aab
402ac3:	33 c0                	xor    %eax,%eax
402ac5:	eb 07                	jmp    0x402ace
402ac7:	8b 04 f5 14 10 40 00 	mov    0x401014(,%esi,8),%eax