402687:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
40268a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40268d:	0f 8e 49 01 00 00    	jle    0x4027dc
402693:	8b 3d 58 81 40 00    	mov    0x408158,%edi
402699:	83 7d d4 39          	cmpl   $0x39,-0x2c(%ebp)
40269d:	0f 85 8f 00 00 00    	jne    0x402732
4026a3:	8d 45 c8             	lea    -0x38(%ebp),%eax
4026a6:	53                   	push   %ebx
4026a7:	50                   	push   %eax
4026a8:	6a 02                	push   $0x2
4026aa:	58                   	pop    %eax
4026ab:	2b 45 e4             	sub    -0x1c(%ebp),%eax
4026ae:	50                   	push   %eax
4026af:	8d 45 0a             	lea    0xa(%ebp),%eax
4026b2:	50                   	push   %eax
4026b3:	ff 75 f0             	push   -0x10(%ebp)
4026b6:	ff 15 48 81 40 00    	call   *0x408148
4026bc:	85 c0                	test   %eax,%eax
4026be:	0f 84 18 01 00 00    	je     0x4027dc
4026c4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4026c7:	3b cb                	cmp    %ebx,%ecx
4026c9:	0f 84 0d 01 00 00    	je     0x4027dc
4026cf:	66 0f b6 45 0a       	movzbw 0xa(%ebp),%ax
4026d4:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4026d7:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4026da:	89 45 bc             	mov    %eax,-0x44(%ebp)
4026dd:	0f 85 b5 00 00 00    	jne    0x402798
4026e3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4026e6:	6a 01                	push   $0x1
4026e8:	50                   	push   %eax
4026e9:	8d 45 0a             	lea    0xa(%ebp),%eax
4026ec:	51                   	push   %ecx
4026ed:	50                   	push   %eax
4026ee:	6a 08                	push   $0x8
4026f0:	53                   	push   %ebx
4026f1:	ff d7                	call   *%edi
4026f3:	85 c0                	test   %eax,%eax
4026f5:	75 68                	jne    0x40275f
4026f7:	8b 75 b8             	mov    -0x48(%ebp),%esi
4026fa:	f7 de                	neg    %esi
4026fc:	ff 4d c8             	decl   -0x38(%ebp)
4026ff:	b8 fd ff 00 00       	mov    $0xfffd,%eax
402704:	89 45 bc             	mov    %eax,-0x44(%ebp)
402707:	74 59                	je     0x402762
402709:	ff 4d b8             	decl   -0x48(%ebp)
40270c:	46                   	inc    %esi
40270d:	6a 01                	push   $0x1
40270f:	53                   	push   %ebx
402710:	56                   	push   %esi
402711:	ff 75 f0             	push   -0x10(%ebp)
402714:	ff 15 44 81 40 00    	call   *0x408144
40271a:	8d 45 bc             	lea    -0x44(%ebp),%eax
40271d:	6a 01                	push   $0x1
40271f:	50                   	push   %eax
402720:	8d 45 0a             	lea    0xa(%ebp),%eax
402723:	ff 75 c8             	push   -0x38(%ebp)
402726:	50                   	push   %eax
402727:	6a 08                	push   $0x8
402729:	53                   	push   %ebx
40272a:	ff d7                	call   *%edi
40272c:	85 c0                	test   %eax,%eax
40272e:	74 cc                	je     0x4026fc
402730:	eb 2d                	jmp    0x40275f
402732:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402735:	75 16                	jne    0x40274d
402737:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40273a:	75 11                	jne    0x40274d
40273c:	53                   	push   %ebx
40273d:	ff 75 f0             	push   -0x10(%ebp)
402740:	e8 7a 38 00 00       	call   0x405fbf
402745:	85 c0                	test   %eax,%eax
402747:	0f 8c 8f 00 00 00    	jl     0x4027dc
40274d:	8d 45 bc             	lea    -0x44(%ebp),%eax
402750:	6a 02                	push   $0x2
402752:	50                   	push   %eax
402753:	ff 75 f0             	push   -0x10(%ebp)
402756:	e8 06 38 00 00       	call   0x405f61
40275b:	85 c0                	test   %eax,%eax
40275d:	74 7d                	je     0x4027dc
40275f:	8b 45 bc             	mov    -0x44(%ebp),%eax
402762:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402765:	75 31                	jne    0x402798
402767:	66 83 7d d0 0d       	cmpw   $0xd,-0x30(%ebp)
40276c:	74 3b                	je     0x4027a9
40276e:	66 83 7d d0 0a       	cmpw   $0xa,-0x30(%ebp)
402773:	74 34                	je     0x4027a9
402775:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402778:	8b 55 f8             	mov    -0x8(%ebp),%edx
40277b:	ff 45 f8             	incl   -0x8(%ebp)
40277e:	66 3b c3             	cmp    %bx,%ax
402781:	66 89 04 51          	mov    %ax,(%ecx,%edx,2)
402785:	89 45 d0             	mov    %eax,-0x30(%ebp)
402788:	74 52                	je     0x4027dc
40278a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40278d:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
402790:	0f 8c 03 ff ff ff    	jl     0x402699
402796:	eb 44                	jmp    0x4027dc
402798:	0f b7 c0             	movzwl %ax,%eax
40279b:	50                   	push   %eax
40279c:	ff 75 f4             	push   -0xc(%ebp)
40279f:	e8 8b 3b 00 00       	call   0x40632f
4027a4:	e9 25 03 00 00       	jmp    0x402ace
4027a9:	66 39 45 d0          	cmp    %ax,-0x30(%ebp)
4027ad:	74 1b                	je     0x4027ca
4027af:	66 3d 0d 00          	cmp    $0xd,%ax
4027b3:	74 06                	je     0x4027bb
4027b5:	66 3d 0a 00          	cmp    $0xa,%ax
4027b9:	75 0f                	jne    0x4027ca
4027bb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4027be:	8b 55 f8             	mov    -0x8(%ebp),%edx
4027c1:	ff 45 f8             	incl   -0x8(%ebp)
4027c4:	66 89 04 51          	mov    %ax,(%ecx,%edx,2)
4027c8:	eb 12                	jmp    0x4027dc
4027ca:	8b 45 b8             	mov    -0x48(%ebp),%eax
4027cd:	6a 01                	push   $0x1
4027cf:	f7 d8                	neg    %eax
4027d1:	53                   	push   %ebx
4027d2:	50                   	push   %eax
4027d3:	ff 75 f0             	push   -0x10(%ebp)
4027d6:	ff 15 44 81 40 00    	call   *0x408144
4027dc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4027df:	8b 45 f8             	mov    -0x8(%ebp),%eax
4027e2:	3b c3                	cmp    %ebx,%eax
4027e4:	66 89 1c 41          	mov    %bx,(%ecx,%eax,2)
4027e8:	e9 c9 ed ff ff       	jmp    0x4015b6
4027ed:	66 39 1e             	cmp    %bx,(%esi)
4027f0:	0f 84 cf 02 00 00    	je     0x402ac5
4027f6:	6a 02                	push   $0x2
4027f8:	e8 22 04 00 00       	call   0x402c1f
4027fd:	59                   	pop    %ecx
4027fe:	89 55 b4             	mov    %edx,-0x4c(%ebp)
402801:	ff 75 e4             	push   -0x1c(%ebp)
402804:	53                   	push   %ebx
402805:	50                   	push   %eax
402806:	56                   	push   %esi
402807:	e8 3c 3b 00 00       	call   0x406348
40280c:	50                   	push   %eax
40280d:	ff 15 44 81 40 00    	call   *0x408144
402813:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
402816:	0f 8c a9 02 00 00    	jl     0x402ac5
40281c:	e9 46 02 00 00       	jmp    0x402a67
402821:	56                   	push   %esi
402822:	e8 21 3b 00 00       	call   0x406348
402827:	3b c3                	cmp    %ebx,%eax
402829:	0f 84 96 02 00 00    	je     0x402ac5
40282f:	50                   	push   %eax
402830:	ff 15 4c 81 40 00    	call   *0x40814c
402836:	e9 8a 02 00 00       	jmp    0x402ac5
40283b:	ff 75 f4             	push   -0xc(%ebp)
40283e:	e8 05 3b 00 00       	call   0x406348
402843:	3b c3                	cmp    %ebx,%eax
402845:	74 12                	je     0x402859
402847:	8d 8d 2c fd ff ff    	lea    -0x2d4(%ebp),%ecx
40284d:	51                   	push   %ecx
40284e:	50                   	push   %eax
40284f:	ff 15 3c 81 40 00    	call   *0x40813c
402855:	85 c0                	test   %eax,%eax
402857:	75 47                	jne    0x4028a0
402859:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402860:	66 89 1e             	mov    %bx,(%esi)
402863:	e9 5d 02 00 00       	jmp    0x402ac5
402868:	6a 02                	push   $0x2
40286a:	e8 d2 03 00 00       	call   0x402c41
40286f:	8d 8d 2c fd ff ff    	lea    -0x2d4(%ebp),%ecx
402875:	51                   	push   %ecx
402876:	50                   	push   %eax
402877:	ff 15 38 81 40 00    	call   *0x408138
40287d:	83 f8 ff             	cmp    $0xffffffff,%eax
402880:	75 15                	jne    0x402897
402882:	8b 45 f4             	mov    -0xc(%ebp),%eax
402885:	66 89 18             	mov    %bx,(%eax)
402888:	66 89 1e             	mov    %bx,(%esi)
40288b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402892:	e9 2e 02 00 00       	jmp    0x402ac5
402897:	50                   	push   %eax
402898:	ff 75 f4             	push   -0xc(%ebp)
40289b:	e8 8f 3a 00 00       	call   0x40632f
4028a0:	8d 85 58 fd ff ff    	lea    -0x2a8(%ebp),%eax
4028a6:	50                   	push   %eax
4028a7:	56                   	push   %esi
4028a8:	e9 34 01 00 00       	jmp    0x4029e1
4028ad:	6a f0                	push   $0xfffffff0
4028af:	c7 45 d0 66 fd ff ff 	movl   $0xfffffd66,-0x30(%ebp)
4028b6:	e8 86 03 00 00       	call   0x402c41
4028bb:	8b f0                	mov    %eax,%esi
4028bd:	56                   	push   %esi
4028be:	89 75 c8             	mov    %esi,-0x38(%ebp)
4028c1:	e8 6e 34 00 00       	call   0x405d34
4028c6:	85 c0                	test   %eax,%eax
4028c8:	75 07                	jne    0x4028d1
4028ca:	6a ed                	push   $0xffffffed
4028cc:	e8 70 03 00 00       	call   0x402c41
4028d1:	56                   	push   %esi
4028d2:	e8 e2 35 00 00       	call   0x405eb9
4028d7:	6a 02                	push   $0x2
4028d9:	68 00 00 00 40       	push   $0x40000000
4028de:	56                   	push   %esi
4028df:	e8 fa 35 00 00       	call   0x405ede
4028e4:	83 f8 ff             	cmp    $0xffffffff,%eax
4028e7:	89 45 08             	mov    %eax,0x8(%ebp)
4028ea:	0f 84 97 00 00 00    	je     0x402987
4028f0:	a1 58 a2 42 00       	mov    0x42a258,%eax
4028f5:	8b 35 34 81 40 00    	mov    0x408134,%esi
4028fb:	50                   	push   %eax
4028fc:	6a 40                	push   $0x40
4028fe:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402901:	ff d6                	call   *%esi
402903:	8b f8                	mov    %eax,%edi
402905:	3b fb                	cmp    %ebx,%edi
402907:	74 75                	je     0x40297e
402909:	53                   	push   %ebx
40290a:	e8 4e 0b 00 00       	call   0x40345d
40290f:	ff 75 c4             	push   -0x3c(%ebp)
402912:	57                   	push   %edi
402913:	e8 2f 0b 00 00       	call   0x403447
402918:	ff 75 e0             	push   -0x20(%ebp)
40291b:	6a 40                	push   $0x40
40291d:	ff d6                	call   *%esi
40291f:	8b f0                	mov    %eax,%esi
402921:	3b f3                	cmp    %ebx,%esi
402923:	89 75 b4             	mov    %esi,-0x4c(%ebp)
402926:	74 34                	je     0x40295c
402928:	ff 75 e0             	push   -0x20(%ebp)
40292b:	56                   	push   %esi
40292c:	53                   	push   %ebx
40292d:	ff 75 dc             	push   -0x24(%ebp)
402930:	e8 a1 08 00 00       	call   0x4031d6
402935:	eb 18                	jmp    0x40294f
402937:	8b 0e                	mov    (%esi),%ecx
402939:	8b 46 04             	mov    0x4(%esi),%eax
40293c:	83 c6 08             	add    $0x8,%esi
40293f:	51                   	push   %ecx
402940:	03 c7                	add    %edi,%eax
402942:	56                   	push   %esi
402943:	50                   	push   %eax
402944:	89 4d cc             	mov    %ecx,-0x34(%ebp)
402947:	e8 4d 35 00 00       	call   0x405e99
40294c:	03 75 cc             	add    -0x34(%ebp),%esi
40294f:	38 1e                	cmp    %bl,(%esi)
402951:	75 e4                	jne    0x402937
402953:	ff 75 b4             	push   -0x4c(%ebp)
402956:	ff 15 28 81 40 00    	call   *0x408128
40295c:	ff 75 c4             	push   -0x3c(%ebp)
40295f:	57                   	push   %edi
402960:	ff 75 08             	push   0x8(%ebp)
402963:	e8 28 36 00 00       	call   0x405f90
402968:	57                   	push   %edi
402969:	ff 15 28 81 40 00    	call   *0x408128
40296f:	53                   	push   %ebx
402970:	53                   	push   %ebx
402971:	ff 75 08             	push   0x8(%ebp)
402974:	6a ff                	push   $0xffffffff
402976:	e8 5b 08 00 00       	call   0x4031d6
40297b:	89 45 d0             	mov    %eax,-0x30(%ebp)
40297e:	ff 75 08             	push   0x8(%ebp)
402981:	ff 15 20 81 40 00    	call   *0x408120
402987:	39 5d d0             	cmp    %ebx,-0x30(%ebp)
40298a:	6a f3                	push   $0xfffffff3
40298c:	5e                   	pop    %esi
40298d:	7d 13                	jge    0x4029a2
40298f:	6a ef                	push   $0xffffffef
402991:	5e                   	pop    %esi
402992:	ff 75 c8             	push   -0x38(%ebp)
402995:	ff 15 40 81 40 00    	call   *0x408140
40299b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4029a2:	56                   	push   %esi
4029a3:	e9 a3 f8 ff ff       	jmp    0x40224b
4029a8:	53                   	push   %ebx
4029a9:	e8 71 02 00 00       	call   0x402c1f
4029ae:	8b f8                	mov    %eax,%edi
4029b0:	59                   	pop    %ecx
4029b1:	3b 3d 8c a2 42 00    	cmp    0x42a28c,%edi
4029b7:	89 55 b4             	mov    %edx,-0x4c(%ebp)
4029ba:	0f 83 cb fe ff ff    	jae    0x40288b
4029c0:	8b f7                	mov    %edi,%esi
4029c2:	8b 45 e0             	mov    -0x20(%ebp),%eax
4029c5:	69 f6 18 08 00 00    	imul   $0x818,%esi,%esi
4029cb:	03 35 88 a2 42 00    	add    0x42a288,%esi
4029d1:	3b c3                	cmp    %ebx,%eax
4029d3:	7c 19                	jl     0x4029ee
4029d5:	8b 0c 86             	mov    (%esi,%eax,4),%ecx
4029d8:	75 11                	jne    0x4029eb
4029da:	83 c6 18             	add    $0x18,%esi
4029dd:	56                   	push   %esi
4029de:	ff 75 f4             	push   -0xc(%ebp)
4029e1:	e8 02 3a 00 00       	call   0x4063e8
4029e6:	e9 da 00 00 00       	jmp    0x402ac5
4029eb:	51                   	push   %ecx
4029ec:	eb 7a                	jmp    0x402a68
4029ee:	83 c9 ff             	or     $0xffffffff,%ecx
4029f1:	2b c8                	sub    %eax,%ecx
4029f3:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4029f6:	74 10                	je     0x402a08
4029f8:	6a 01                	push   $0x1
4029fa:	e8 20 02 00 00       	call   0x402c1f
4029ff:	59                   	pop    %ecx
402a00:	89 55 b4             	mov    %edx,-0x4c(%ebp)
402a03:	89 45 dc             	mov    %eax,-0x24(%ebp)
402a06:	eb 10                	jmp    0x402a18
402a08:	ff 75 e8             	push   -0x18(%ebp)
402a0b:	8d 46 18             	lea    0x18(%esi),%eax
402a0e:	50                   	push   %eax
402a0f:	e8 f6 39 00 00       	call   0x40640a
402a14:	80 4e 09 01          	orb    $0x1,0x9(%esi)
402a18:	8b 45 e0             	mov    -0x20(%ebp),%eax
402a1b:	8b 4d dc             	mov    -0x24(%ebp),%ecx
402a1e:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
402a21:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402a24:	0f 84 9b 00 00 00    	je     0x402ac5
402a2a:	57                   	push   %edi
402a2b:	e8 4d e7 ff ff       	call   0x40117d
402a30:	e9 90 00 00 00       	jmp    0x402ac5
402a35:	53                   	push   %ebx
402a36:	e8 e4 01 00 00       	call   0x402c1f
402a3b:	83 f8 20             	cmp    $0x20,%eax
402a3e:	59                   	pop    %ecx
402a3f:	89 55 b4             	mov    %edx,-0x4c(%ebp)
402a42:	0f 83 43 fe ff ff    	jae    0x40288b
402a48:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402a4b:	74 25                	je     0x402a72
402a4d:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
402a50:	74 0f                	je     0x402a61
402a52:	50                   	push   %eax
402a53:	e8 41 e8 ff ff       	call   0x401299
402a58:	53                   	push   %ebx
402a59:	53                   	push   %ebx
402a5a:	e8 90 e7 ff ff       	call   0x4011ef
402a5f:	eb 64                	jmp    0x402ac5
402a61:	53                   	push   %ebx
402a62:	e8 7b e8 ff ff       	call   0x4012e2
402a67:	50                   	push   %eax
402a68:	ff 75 f4             	push   -0xc(%ebp)
402a6b:	e8 bf 38 00 00       	call   0x40632f
402a70:	eb 53                	jmp    0x402ac5
402a72:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
402a75:	74 12                	je     0x402a89
402a77:	8b 15 54 a2 42 00    	mov    0x42a254,%edx
402a7d:	8b 4d dc             	mov    -0x24(%ebp),%ecx
402a80:	89 8c 82 94 00 00 00 	mov    %ecx,0x94(%edx,%eax,4)
402a87:	eb 3c                	jmp    0x402ac5
402a89:	8b 0d 54 a2 42 00    	mov    0x42a254,%ecx
402a8f:	ff b4 81 94 00 00 00 	push   0x94(%ecx,%eax,4)
402a96:	ff 75 f4             	push   -0xc(%ebp)
402a99:	e8 6c 39 00 00       	call   0x40640a
402a9e:	eb 25                	jmp    0x402ac5
402aa0:	8b 0d 28 57 42 00    	mov    0x425728,%ecx
402aa6:	53                   	push   %ebx
402aa7:	23 c8                	and    %eax,%ecx
402aa9:	51                   	push   %ecx
402aaa:	6a 0b                	push   $0xb