402886:	c6 03 00             	movb   $0x0,(%ebx)
402889:	a8 01                	test   $0x1,%al
40288b:	74 29                	je     0x4028b6
40288d:	8b cf                	mov    %edi,%ecx
40288f:	e8 12 8c 00 00       	call   0x40b4a6
402894:	89 45 74             	mov    %eax,0x74(%ebp)
402897:	b8 ff 00 00 00       	mov    $0xff,%eax
40289c:	39 45 74             	cmp    %eax,0x74(%ebp)
40289f:	72 03                	jb     0x4028a4
4028a1:	89 45 74             	mov    %eax,0x74(%ebp)
4028a4:	ff 75 74             	push   0x74(%ebp)
4028a7:	8b cf                	mov    %edi,%ecx
4028a9:	53                   	push   %ebx
4028aa:	e8 80 8c 00 00       	call   0x40b52f
4028af:	8b 45 74             	mov    0x74(%ebp),%eax
4028b2:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
4028b6:	f6 45 78 02          	testb  $0x2,0x78(%ebp)
4028ba:	74 2f                	je     0x4028eb
4028bc:	8b cf                	mov    %edi,%ecx
4028be:	e8 e3 8b 00 00       	call   0x40b4a6
4028c3:	89 45 74             	mov    %eax,0x74(%ebp)
4028c6:	b8 ff 00 00 00       	mov    $0xff,%eax
4028cb:	39 45 74             	cmp    %eax,0x74(%ebp)
4028ce:	72 03                	jb     0x4028d3
4028d0:	89 45 74             	mov    %eax,0x74(%ebp)
4028d3:	ff 75 74             	push   0x74(%ebp)
4028d6:	8d 9e f8 21 00 00    	lea    0x21f8(%esi),%ebx
4028dc:	53                   	push   %ebx
4028dd:	8b cf                	mov    %edi,%ecx
4028df:	e8 4b 8c 00 00       	call   0x40b52f
4028e4:	8b 45 74             	mov    0x74(%ebp),%eax
4028e7:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
4028eb:	80 be f6 20 00 00 00 	cmpb   $0x0,0x20f6(%esi)
4028f2:	74 0d                	je     0x402901
4028f4:	8b cf                	mov    %edi,%ecx
4028f6:	e8 ab 8b 00 00       	call   0x40b4a6
4028fb:	89 86 f8 22 00 00    	mov    %eax,0x22f8(%esi)
402901:	80 be f7 20 00 00 00 	cmpb   $0x0,0x20f7(%esi)
402908:	74 0d                	je     0x402917
40290a:	8b cf                	mov    %edi,%ecx
40290c:	e8 95 8b 00 00       	call   0x40b4a6
402911:	89 86 fc 22 00 00    	mov    %eax,0x22fc(%esi)
402917:	c6 86 f5 20 00 00 01 	movb   $0x1,0x20f5(%esi)
40291e:	e9 b2 02 00 00       	jmp    0x402bd5
402923:	8b cf                	mov    %edi,%ecx
402925:	e8 7c 8b 00 00       	call   0x40b4a6
40292a:	8b cf                	mov    %edi,%ecx
40292c:	89 86 f0 10 00 00    	mov    %eax,0x10f0(%esi)
402932:	e8 6f 8b 00 00       	call   0x40b4a6
402937:	24 01                	and    $0x1,%al
402939:	8b cf                	mov    %edi,%ecx
40293b:	88 86 f4 20 00 00    	mov    %al,0x20f4(%esi)
402941:	e8 60 8b 00 00       	call   0x40b4a6
402946:	8b d8                	mov    %eax,%ebx
402948:	c6 85 ac df ff ff 00 	movb   $0x0,-0x2054(%ebp)
40294f:	81 fb ff 1f 00 00    	cmp    $0x1fff,%ebx
402955:	73 17                	jae    0x40296e
402957:	53                   	push   %ebx
402958:	8d 85 ac df ff ff    	lea    -0x2054(%ebp),%eax
40295e:	50                   	push   %eax
40295f:	8b cf                	mov    %edi,%ecx
402961:	e8 c9 8b 00 00       	call   0x40b52f
402966:	c6 84 1d ac df ff ff 	movb   $0x0,-0x2054(%ebp,%ebx,1)
40296d:	00
40296e:	68 00 08 00 00       	push   $0x800
402973:	8d 86 f4 10 00 00    	lea    0x10f4(%esi),%eax
402979:	50                   	push   %eax
40297a:	8d 85 ac df ff ff    	lea    -0x2054(%ebp),%eax
402980:	50                   	push   %eax
402981:	e8 83 ef 00 00       	call   0x411909
402986:	e9 4a 02 00 00       	jmp    0x402bd5
40298b:	33 c0                	xor    %eax,%eax
40298d:	0f 8c 42 02 00 00    	jl     0x402bd5
402993:	7f 09                	jg     0x40299e
402995:	83 fb 01             	cmp    $0x1,%ebx
402998:	0f 82 37 02 00 00    	jb     0x402bd5
40299e:	8b cf                	mov    %edi,%ecx
4029a0:	e8 01 8b 00 00       	call   0x40b4a6
4029a5:	8b cf                	mov    %edi,%ecx
4029a7:	e8 fa 8a 00 00       	call   0x40b4a6
4029ac:	85 c0                	test   %eax,%eax
4029ae:	0f 84 21 02 00 00    	je     0x402bd5
4029b4:	50                   	push   %eax
4029b5:	68 6c a4 42 00       	push   $0x42a46c
4029ba:	8d 45 1c             	lea    0x1c(%ebp),%eax
4029bd:	6a 14                	push   $0x14
4029bf:	50                   	push   %eax
4029c0:	c6 86 e3 10 00 00 01 	movb   $0x1,0x10e3(%esi)
4029c7:	e8 16 ac 00 00       	call   0x40d5e2
4029cc:	83 c4 10             	add    $0x10,%esp
4029cf:	68 00 08 00 00       	push   $0x800
4029d4:	8d 45 1c             	lea    0x1c(%ebp),%eax
4029d7:	50                   	push   %eax
4029d8:	8b 45 68             	mov    0x68(%ebp),%eax
4029db:	05 e8 57 00 00       	add    $0x57e8,%eax
4029e0:	50                   	push   %eax
4029e1:	e8 66 df 00 00       	call   0x41094c
4029e6:	e9 ea 01 00 00       	jmp    0x402bd5
4029eb:	33 c0                	xor    %eax,%eax
4029ed:	0f 8c e2 01 00 00    	jl     0x402bd5
4029f3:	7f 09                	jg     0x4029fe
4029f5:	83 fb 09             	cmp    $0x9,%ebx
4029f8:	0f 82 d7 01 00 00    	jb     0x402bd5
4029fe:	8b cf                	mov    %edi,%ecx
402a00:	e8 a1 8a 00 00       	call   0x40b4a6
402a05:	8a d8                	mov    %al,%bl
402a07:	80 e3 01             	and    $0x1,%bl
402a0a:	88 45 77             	mov    %al,0x77(%ebp)
402a0d:	a8 02                	test   $0x2,%al
402a0f:	74 2d                	je     0x402a3e
402a11:	8b cf                	mov    %edi,%ecx
402a13:	84 db                	test   %bl,%bl
402a15:	74 15                	je     0x402a2c
402a17:	e8 2c 8a 00 00       	call   0x40b448
402a1c:	6a 00                	push   $0x0
402a1e:	50                   	push   %eax
402a1f:	8d 8e 30 10 00 00    	lea    0x1030(%esi),%ecx
402a25:	e8 61 e6 00 00       	call   0x41108b
402a2a:	eb 12                	jmp    0x402a3e
402a2c:	e8 54 8a 00 00       	call   0x40b485
402a31:	52                   	push   %edx
402a32:	50                   	push   %eax
402a33:	8d 8e 30 10 00 00    	lea    0x1030(%esi),%ecx
402a39:	e8 79 e6 00 00       	call   0x4110b7
402a3e:	f6 45 77 04          	testb  $0x4,0x77(%ebp)
402a42:	74 2d                	je     0x402a71
402a44:	8b cf                	mov    %edi,%ecx
402a46:	84 db                	test   %bl,%bl
402a48:	74 15                	je     0x402a5f
402a4a:	e8 f9 89 00 00       	call   0x40b448
402a4f:	6a 00                	push   $0x0
402a51:	50                   	push   %eax
402a52:	8d 8e 38 10 00 00    	lea    0x1038(%esi),%ecx
402a58:	e8 2e e6 00 00       	call   0x41108b
402a5d:	eb 12                	jmp    0x402a71
402a5f:	e8 21 8a 00 00       	call   0x40b485
402a64:	52                   	push   %edx
402a65:	50                   	push   %eax
402a66:	8d 8e 38 10 00 00    	lea    0x1038(%esi),%ecx
402a6c:	e8 46 e6 00 00       	call   0x4110b7
402a71:	f6 45 77 08          	testb  $0x8,0x77(%ebp)
402a75:	0f 84 5a 01 00 00    	je     0x402bd5
402a7b:	8b cf                	mov    %edi,%ecx
402a7d:	84 db                	test   %bl,%bl
402a7f:	74 18                	je     0x402a99
402a81:	e8 c2 89 00 00       	call   0x40b448
402a86:	6a 00                	push   $0x0
402a88:	50                   	push   %eax
402a89:	8d 8e 40 10 00 00    	lea    0x1040(%esi),%ecx
402a8f:	e8 f7 e5 00 00       	call   0x41108b
402a94:	e9 3c 01 00 00       	jmp    0x402bd5
402a99:	e8 e7 89 00 00       	call   0x40b485
402a9e:	52                   	push   %edx
402a9f:	50                   	push   %eax
402aa0:	8d 8e 40 10 00 00    	lea    0x1040(%esi),%ecx
402aa6:	e8 0c e6 00 00       	call   0x4110b7
402aab:	e9 25 01 00 00       	jmp    0x402bd5
402ab0:	8b cf                	mov    %edi,%ecx
402ab2:	e8 ef 89 00 00       	call   0x40b4a6
402ab7:	85 c0                	test   %eax,%eax
402ab9:	0f 85 16 01 00 00    	jne    0x402bd5
402abf:	6a 20                	push   $0x20
402ac1:	8d 86 64 10 00 00    	lea    0x1064(%esi),%eax
402ac7:	c7 86 60 10 00 00 03 	movl   $0x3,0x1060(%esi)
402ace:	00 00 00
402ad1:	50                   	push   %eax
402ad2:	8b cf                	mov    %edi,%ecx
402ad4:	e8 56 8a 00 00       	call   0x40b52f
402ad9:	e9 f7 00 00 00       	jmp    0x402bd5
402ade:	8b cf                	mov    %edi,%ecx
402ae0:	e8 c1 89 00 00       	call   0x40b4a6
402ae5:	85 c0                	test   %eax,%eax
402ae7:	76 11                	jbe    0x402afa
402ae9:	8b 4d 68             	mov    0x68(%ebp),%ecx
402aec:	8d 46 20             	lea    0x20(%esi),%eax
402aef:	50                   	push   %eax
402af0:	e8 65 f1 ff ff       	call   0x401c5a
402af5:	e9 db 00 00 00       	jmp    0x402bd5
402afa:	8b cf                	mov    %edi,%ecx
402afc:	e8 a5 89 00 00       	call   0x40b4a6
402b01:	8a c8                	mov    %al,%cl
402b03:	80 e1 01             	and    $0x1,%cl
402b06:	d1 e8                	shr    $1,%eax
402b08:	88 8e b1 10 00 00    	mov    %cl,0x10b1(%esi)
402b0e:	24 01                	and    $0x1,%al
402b10:	8b cf                	mov    %edi,%ecx
402b12:	88 86 ba 10 00 00    	mov    %al,0x10ba(%esi)
402b18:	e8 de 88 00 00       	call   0x40b3fb
402b1d:	0f b6 c0             	movzbl %al,%eax
402b20:	89 86 dc 10 00 00    	mov    %eax,0x10dc(%esi)
402b26:	83 f8 18             	cmp    $0x18,%eax
402b29:	76 0c                	jbe    0x402b37
402b2b:	8b 4d 68             	mov    0x68(%ebp),%ecx
402b2e:	8d 46 20             	lea    0x20(%esi),%eax
402b31:	50                   	push   %eax
402b32:	e8 23 f1 ff ff       	call   0x401c5a
402b37:	6a 10                	push   $0x10
402b39:	8d 86 91 10 00 00    	lea    0x1091(%esi),%eax
402b3f:	50                   	push   %eax
402b40:	8b cf                	mov    %edi,%ecx
402b42:	e8 e8 89 00 00       	call   0x40b52f
402b47:	6a 10                	push   $0x10
402b49:	8d 86 a1 10 00 00    	lea    0x10a1(%esi),%eax
402b4f:	50                   	push   %eax
402b50:	8b cf                	mov    %edi,%ecx
402b52:	e8 d8 89 00 00       	call   0x40b52f
402b57:	80 be b1 10 00 00 00 	cmpb   $0x0,0x10b1(%esi)
402b5e:	74 5d                	je     0x402bbd
402b60:	6a 08                	push   $0x8
402b62:	8d 9e b2 10 00 00    	lea    0x10b2(%esi),%ebx
402b68:	53                   	push   %ebx
402b69:	8b cf                	mov    %edi,%ecx
402b6b:	e8 bf 89 00 00       	call   0x40b52f
402b70:	6a 04                	push   $0x4
402b72:	8d 45 7c             	lea    0x7c(%ebp),%eax
402b75:	50                   	push   %eax
402b76:	8b cf                	mov    %edi,%ecx
402b78:	e8 b2 89 00 00       	call   0x40b52f
402b7d:	8d 45 ac             	lea    -0x54(%ebp),%eax
402b80:	50                   	push   %eax
402b81:	e8 ab d8 00 00       	call   0x410431
402b86:	6a 08                	push   $0x8
402b88:	53                   	push   %ebx
402b89:	8d 45 ac             	lea    -0x54(%ebp),%eax
402b8c:	50                   	push   %eax
402b8d:	e8 a1 db 00 00       	call   0x410733
402b92:	8d 45 24             	lea    0x24(%ebp),%eax
402b95:	50                   	push   %eax
402b96:	8d 45 ac             	lea    -0x54(%ebp),%eax
402b99:	50                   	push   %eax
402b9a:	e8 0d dc 00 00       	call   0x4107ac
402b9f:	6a 04                	push   $0x4
402ba1:	8d 45 24             	lea    0x24(%ebp),%eax
402ba4:	50                   	push   %eax
402ba5:	8d 45 7c             	lea    0x7c(%ebp),%eax
402ba8:	50                   	push   %eax
402ba9:	e8 36 7a 01 00       	call   0x41a5e4
402bae:	83 c4 0c             	add    $0xc,%esp
402bb1:	f7 d8                	neg    %eax
402bb3:	1a c0                	sbb    %al,%al
402bb5:	fe c0                	inc    %al
402bb7:	88 86 b1 10 00 00    	mov    %al,0x10b1(%esi)
402bbd:	c6 86 90 10 00 00 01 	movb   $0x1,0x1090(%esi)
402bc4:	c7 86 8c 10 00 00 05 	movl   $0x5,0x108c(%esi)
402bcb:	00 00 00
402bce:	c6 86 8b 10 00 00 01 	movb   $0x1,0x108b(%esi)
402bd5:	8b 45 5c             	mov    0x5c(%ebp),%eax
402bd8:	89 47 18             	mov    %eax,0x18(%edi)
402bdb:	8b 47 14             	mov    0x14(%edi),%eax
402bde:	2b 47 18             	sub    0x18(%edi),%eax
402be1:	83 f8 02             	cmp    $0x2,%eax
402be4:	0f 83 35 fb ff ff    	jae    0x40271f
402bea:	5b                   	pop    %ebx
402beb:	5e                   	pop    %esi
402bec:	5f                   	pop    %edi
402bed:	83 c5 6c             	add    $0x6c,%ebp
402bf0:	c9                   	leave
402bf1:	c2 0c 00             	ret    $0xc
402bf4:	b8 c8 91 42 00       	mov    $0x4291c8,%eax
402bf9:	e8 ba 72 01 00       	call   0x419eb8
402bfe:	b8 00 e7 00 00       	mov    $0xe700,%eax
402c03:	e8 c8 78 01 00       	call   0x41a4d0
402c08:	53                   	push   %ebx
402c09:	56                   	push   %esi
402c0a:	8b f1                	mov    %ecx,%esi
402c0c:	80 be 44 a2 00 00 00 	cmpb   $0x0,0xa244(%esi)
402c13:	57                   	push   %edi
402c14:	74 1c                	je     0x402c32
402c16:	83 c6 1e             	add    $0x1e,%esi
402c19:	56                   	push   %esi
402c1a:	6a 1b                	push   $0x1b
402c1c:	e8 8f 38 00 00       	call   0x4064b0
402c21:	6a 03                	push   $0x3
402c23:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
402c28:	e8 dd 37 00 00       	call   0x40640a
402c2d:	e9 44 02 00 00       	jmp    0x402e76
402c32:	80 be 22 7b 00 00 05 	cmpb   $0x5,0x7b22(%esi)
402c39:	0f 87 2c 02 00 00    	ja     0x402e6b
402c3f:	8b 86 30 a2 00 00    	mov    0xa230(%esi),%eax
402c45:	0f b6 8e 21 7b 00 00 	movzbl 0x7b21(%esi),%ecx
402c4c:	83 e8 03             	sub    $0x3,%eax
402c4f:	f7 d8                	neg    %eax
402c51:	1b c0                	sbb    %eax,%eax
402c53:	83 e0 1d             	and    $0x1d,%eax
402c56:	3b c8                	cmp    %eax,%ecx
402c58:	0f 8f 0d 02 00 00    	jg     0x402e6b
402c5e:	8b 86 50 8b 00 00    	mov    0x8b50(%esi),%eax
402c64:	0b 86 54 8b 00 00    	or     0x8b54(%esi),%eax
402c6a:	75 0f                	jne    0x402c7b
402c6c:	38 86 91 8b 00 00    	cmp    %al,0x8b91(%esi)
402c72:	75 07                	jne    0x402c7b
402c74:	b0 01                	mov    $0x1,%al
402c76:	e9 fd 01 00 00       	jmp    0x402e78
402c7b:	8d be 30 1c 00 00    	lea    0x1c30(%esi),%edi
402c81:	8b cf                	mov    %edi,%ecx
402c83:	e8 69 89 00 00       	call   0x40b5f1
402c88:	57                   	push   %edi
402c89:	8d 8d f4 18 ff ff    	lea    -0xe70c(%ebp),%ecx
402c8f:	e8 01 46 01 00       	call   0x417295
402c94:	33 db                	xor    %ebx,%ebx
402c96:	53                   	push   %ebx
402c97:	ff b6 ec 8b 00 00    	push   0x8bec(%esi)
402c9d:	8d 8d f4 18 ff ff    	lea    -0xe70c(%ebp),%ecx
402ca3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402ca6:	e8 69 f6 00 00       	call   0x412314
402cab:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
402cae:	75 56                	jne    0x402d06
402cb0:	39 9e 5c 8b 00 00    	cmp    %ebx,0x8b5c(%esi)
402cb6:	7c 2d                	jl     0x402ce5
402cb8:	7f 0c                	jg     0x402cc6
402cba:	81 be 58 8b 00 00 00 	cmpl   $0x1000000,0x8b58(%esi)
402cc1:	00 00 01
402cc4:	76 1f                	jbe    0x402ce5
402cc6:	83 c6 1e             	add    $0x1e,%esi
402cc9:	56                   	push   %esi
402cca:	6a 1c                	push   $0x1c
402ccc:	e8 df 37 00 00       	call   0x4064b0
402cd1:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
402cd5:	8d 8d f4 18 ff ff    	lea    -0xe70c(%ebp),%ecx
402cdb:	e8 36 25 01 00       	call   0x415216
402ce0:	e9 91 01 00 00       	jmp    0x402e76
402ce5:	8b 5d 08             	mov    0x8(%ebp),%ebx
402ce8:	ff b6 58 8b 00 00    	push   0x8b58(%esi)
402cee:	8b cb                	mov    %ebx,%ecx
402cf0:	e8 da ee ff ff       	call   0x401bcf
402cf5:	ff b6 58 8b 00 00    	push   0x8b58(%esi)
402cfb:	8b cf                	mov    %edi,%ecx
402cfd:	ff 33                	push   (%ebx)
402cff:	e8 63 8a 00 00       	call   0x40b767
402d04:	33 db                	xor    %ebx,%ebx
402d06:	80 be 93 8b 00 00 00 	cmpb   $0x0,0x8b93(%esi)
402d0d:	74 52                	je     0x402d61
402d0f:	8b 86 04 57 00 00    	mov    0x5704(%esi),%eax
402d15:	80 b8 20 41 00 00 00 	cmpb   $0x0,0x4120(%eax)
402d1c:	74 b3                	je     0x402cd1
402d1e:	0f b6 96 98 8b 00 00 	movzbl 0x8b98(%esi),%edx
402d25:	8d 8e c3 8b 00 00    	lea    0x8bc3(%esi),%ecx
402d2b:	51                   	push   %ecx
402d2c:	8d 8e ba 8b 00 00    	lea    0x8bba(%esi),%ecx
402d32:	51                   	push   %ecx
402d33:	ff b6 e4 8b 00 00    	push   0x8be4(%esi)
402d39:	8d 8e a9 8b 00 00    	lea    0x8ba9(%esi),%ecx
402d3f:	51                   	push   %ecx
402d40:	f7 da                	neg    %edx
402d42:	1b d2                	sbb    %edx,%edx
402d44:	8d 8e 99 8b 00 00    	lea    0x8b99(%esi),%ecx
402d4a:	23 d1                	and    %ecx,%edx
402d4c:	52                   	push   %edx
402d4d:	05 20 40 00 00       	add    $0x4020,%eax
402d52:	50                   	push   %eax