401b5d:	c6 06 00             	movb   $0x0,(%esi)
401b60:	2b f3                	sub    %ebx,%esi
401b62:	56                   	push   %esi
401b63:	53                   	push   %ebx
401b64:	6a 08                	push   $0x8
401b66:	68 e9 fd 00 00       	push   $0xfde9
401b6b:	ff 15 30 f0 40 00    	call   *0x40f030
401b71:	8b f0                	mov    %eax,%esi
401b73:	33 c0                	xor    %eax,%eax
401b75:	33 db                	xor    %ebx,%ebx
401b77:	3b f3                	cmp    %ebx,%esi
401b79:	0f 95 c0             	setne  %al
401b7c:	68 44 0e 41 00       	push   $0x410e44
401b81:	50                   	push   %eax
401b82:	e8 e3 f4 ff ff       	call   0x40106a
401b87:	33 c0                	xor    %eax,%eax
401b89:	66 89 84 75 f4 fd ff 	mov    %ax,-0x20c(%ebp,%esi,2)
401b90:	ff
401b91:	59                   	pop    %ecx
401b92:	59                   	pop    %ecx
401b93:	8d b5 f4 fd ff ff    	lea    -0x20c(%ebp),%esi
401b99:	66 39 9d f4 fd ff ff 	cmp    %bx,-0x20c(%ebp)
401ba0:	74 19                	je     0x401bbb
401ba2:	0f b7 06             	movzwl (%esi),%eax
401ba5:	6a 08                	push   $0x8
401ba7:	50                   	push   %eax
401ba8:	e8 ae 0e 00 00       	call   0x402a5b
401bad:	59                   	pop    %ecx
401bae:	59                   	pop    %ecx
401baf:	85 c0                	test   %eax,%eax
401bb1:	74 08                	je     0x401bbb
401bb3:	83 c6 02             	add    $0x2,%esi
401bb6:	66 39 1e             	cmp    %bx,(%esi)
401bb9:	75 e7                	jne    0x401ba2
401bbb:	33 c0                	xor    %eax,%eax
401bbd:	66 83 3e 23          	cmpw   $0x23,(%esi)
401bc1:	68 70 0e 41 00       	push   $0x410e70
401bc6:	0f 94 c0             	sete   %al
401bc9:	50                   	push   %eax
401bca:	e8 9b f4 ff ff       	call   0x40106a
401bcf:	59                   	pop    %ecx
401bd0:	59                   	pop    %ecx
401bd1:	6a 02                	push   $0x2
401bd3:	5f                   	pop    %edi
401bd4:	eb 0e                	jmp    0x401be4
401bd6:	6a 08                	push   $0x8
401bd8:	50                   	push   %eax
401bd9:	e8 7d 0e 00 00       	call   0x402a5b
401bde:	59                   	pop    %ecx
401bdf:	59                   	pop    %ecx
401be0:	85 c0                	test   %eax,%eax
401be2:	74 0a                	je     0x401bee
401be4:	03 f7                	add    %edi,%esi
401be6:	0f b7 06             	movzwl (%esi),%eax
401be9:	66 3b c3             	cmp    %bx,%ax
401bec:	75 e8                	jne    0x401bd6
401bee:	33 c0                	xor    %eax,%eax
401bf0:	66 83 3e 21          	cmpw   $0x21,(%esi)
401bf4:	68 a0 0e 41 00       	push   $0x410ea0
401bf9:	0f 94 c0             	sete   %al
401bfc:	50                   	push   %eax
401bfd:	e8 68 f4 ff ff       	call   0x40106a
401c02:	59                   	pop    %ecx
401c03:	59                   	pop    %ecx
401c04:	eb 0e                	jmp    0x401c14
401c06:	6a 08                	push   $0x8
401c08:	50                   	push   %eax
401c09:	e8 4d 0e 00 00       	call   0x402a5b
401c0e:	59                   	pop    %ecx
401c0f:	59                   	pop    %ecx
401c10:	85 c0                	test   %eax,%eax
401c12:	74 0a                	je     0x401c1e
401c14:	03 f7                	add    %edi,%esi
401c16:	0f b7 06             	movzwl (%esi),%eax
401c19:	66 3b c3             	cmp    %bx,%ax
401c1c:	75 e8                	jne    0x401c06
401c1e:	8d 85 d8 f8 ff ff    	lea    -0x728(%ebp),%eax
401c24:	50                   	push   %eax
401c25:	56                   	push   %esi
401c26:	89 9d d8 f8 ff ff    	mov    %ebx,-0x728(%ebp)
401c2c:	e8 53 fc ff ff       	call   0x401884
401c31:	8b f8                	mov    %eax,%edi
401c33:	33 c0                	xor    %eax,%eax
401c35:	85 ff                	test   %edi,%edi
401c37:	0f 95 c0             	setne  %al
401c3a:	68 d4 0e 41 00       	push   $0x410ed4
401c3f:	50                   	push   %eax
401c40:	e8 25 f4 ff ff       	call   0x40106a
401c45:	33 c0                	xor    %eax,%eax
401c47:	39 85 d8 f8 ff ff    	cmp    %eax,-0x728(%ebp)
401c4d:	68 00 0f 41 00       	push   $0x410f00
401c52:	0f 95 c0             	setne  %al
401c55:	50                   	push   %eax
401c56:	e8 0f f4 ff ff       	call   0x40106a
401c5b:	6a 0f                	push   $0xf
401c5d:	5b                   	pop    %ebx
401c5e:	53                   	push   %ebx
401c5f:	57                   	push   %edi
401c60:	68 90 0d 41 00       	push   $0x410d90
401c65:	e8 e7 04 00 00       	call   0x402151
401c6a:	83 c4 24             	add    $0x24,%esp
401c6d:	85 c0                	test   %eax,%eax
401c6f:	75 76                	jne    0x401ce7
401c71:	68 e0 3b 41 00       	push   $0x413be0
401c76:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
401c7c:	68 04 01 00 00       	push   $0x104
401c81:	50                   	push   %eax
401c82:	e8 34 1b 00 00       	call   0x4037bb
401c87:	83 c4 0c             	add    $0xc,%esp
401c8a:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
401c90:	50                   	push   %eax
401c91:	ff 15 50 f1 40 00    	call   *0x40f150
401c97:	66 83 7f 1e 22       	cmpw   $0x22,0x1e(%edi)
401c9c:	75 2b                	jne    0x401cc9
401c9e:	6a 10                	push   $0x10
401ca0:	5b                   	pop    %ebx
401ca1:	8d 47 20             	lea    0x20(%edi),%eax
401ca4:	6a 22                	push   $0x22
401ca6:	50                   	push   %eax
401ca7:	e8 0c 02 00 00       	call   0x401eb8
401cac:	8b f0                	mov    %eax,%esi
401cae:	33 c0                	xor    %eax,%eax
401cb0:	85 f6                	test   %esi,%esi
401cb2:	0f 95 c0             	setne  %al
401cb5:	57                   	push   %edi
401cb6:	68 48 0d 41 00       	push   $0x410d48
401cbb:	50                   	push   %eax
401cbc:	e8 a9 f3 ff ff       	call   0x40106a
401cc1:	83 c4 14             	add    $0x14,%esp
401cc4:	33 c0                	xor    %eax,%eax
401cc6:	66 89 06             	mov    %ax,(%esi)
401cc9:	8d 04 5f             	lea    (%edi,%ebx,2),%eax
401ccc:	50                   	push   %eax
401ccd:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
401cd3:	50                   	push   %eax
401cd4:	8d 85 e4 f9 ff ff    	lea    -0x61c(%ebp),%eax
401cda:	50                   	push   %eax
401cdb:	ff 15 54 f1 40 00    	call   *0x40f154
401ce1:	8d bd e4 f9 ff ff    	lea    -0x61c(%ebp),%edi
401ce7:	8b c7                	mov    %edi,%eax
401ce9:	8d 50 02             	lea    0x2(%eax),%edx
401cec:	66 8b 08             	mov    (%eax),%cx
401cef:	83 c0 02             	add    $0x2,%eax
401cf2:	66 85 c9             	test   %cx,%cx
401cf5:	75 f5                	jne    0x401cec
401cf7:	2b c2                	sub    %edx,%eax
401cf9:	d1 f8                	sar    $1,%eax
401cfb:	8b f0                	mov    %eax,%esi
401cfd:	8b 85 d8 f8 ff ff    	mov    -0x728(%ebp),%eax
401d03:	8d 48 02             	lea    0x2(%eax),%ecx
401d06:	66 8b 10             	mov    (%eax),%dx
401d09:	83 c0 02             	add    $0x2,%eax
401d0c:	66 85 d2             	test   %dx,%dx
401d0f:	75 f5                	jne    0x401d06
401d11:	2b c1                	sub    %ecx,%eax
401d13:	d1 f8                	sar    $1,%eax
401d15:	89 85 d0 f8 ff ff    	mov    %eax,-0x730(%ebp)
401d1b:	8b 85 dc f8 ff ff    	mov    -0x724(%ebp),%eax
401d21:	8d 48 02             	lea    0x2(%eax),%ecx
401d24:	66 8b 10             	mov    (%eax),%dx
401d27:	83 c0 02             	add    $0x2,%eax
401d2a:	66 85 d2             	test   %dx,%dx
401d2d:	75 f5                	jne    0x401d24
401d2f:	2b c1                	sub    %ecx,%eax
401d31:	d1 f8                	sar    $1,%eax
401d33:	8b c8                	mov    %eax,%ecx
401d35:	8b 85 d4 f8 ff ff    	mov    -0x72c(%ebp),%eax
401d3b:	8d 50 02             	lea    0x2(%eax),%edx
401d3e:	66 8b 18             	mov    (%eax),%bx
401d41:	83 c0 02             	add    $0x2,%eax
401d44:	66 85 db             	test   %bx,%bx
401d47:	75 f5                	jne    0x401d3e
401d49:	2b c2                	sub    %edx,%eax
401d4b:	d1 f8                	sar    $1,%eax
401d4d:	03 c8                	add    %eax,%ecx
401d4f:	03 8d d0 f8 ff ff    	add    -0x730(%ebp),%ecx
401d55:	6a 02                	push   $0x2
401d57:	8d 74 31 08          	lea    0x8(%ecx,%esi,1),%esi
401d5b:	56                   	push   %esi
401d5c:	e8 44 02 00 00       	call   0x401fa5
401d61:	8b d8                	mov    %eax,%ebx
401d63:	33 c0                	xor    %eax,%eax
401d65:	85 db                	test   %ebx,%ebx
401d67:	0f 95 c0             	setne  %al
401d6a:	68 3c 0f 41 00       	push   $0x410f3c
401d6f:	50                   	push   %eax
401d70:	e8 f5 f2 ff ff       	call   0x40106a
401d75:	ff b5 d4 f8 ff ff    	push   -0x72c(%ebp)
401d7b:	ff b5 dc f8 ff ff    	push   -0x724(%ebp)
401d81:	ff b5 d8 f8 ff ff    	push   -0x728(%ebp)
401d87:	57                   	push   %edi
401d88:	68 70 0f 41 00       	push   $0x410f70
401d8d:	56                   	push   %esi
401d8e:	56                   	push   %esi
401d8f:	53                   	push   %ebx
401d90:	e8 32 09 00 00       	call   0x4026c7
401d95:	83 c4 30             	add    $0x30,%esp
401d98:	53                   	push   %ebx
401d99:	e8 79 f8 ff ff       	call   0x401617
401d9e:	cc                   	int3
401d9f:	e9 aa fc ff ff       	jmp    0x401a4e
401da4:	3b 0d 84 22 41 00    	cmp    0x412284,%ecx
401daa:	75 02                	jne    0x401dae
401dac:	f3 c3                	repz ret
401dae:	e9 40 1e 00 00       	jmp    0x403bf3
401db3:	6a 0c                	push   $0xc
401db5:	68 50 10 41 00       	push   $0x411050
401dba:	e8 b1 23 00 00       	call   0x404170
401dbf:	33 ff                	xor    %edi,%edi
401dc1:	89 7d e4             	mov    %edi,-0x1c(%ebp)
401dc4:	33 c0                	xor    %eax,%eax
401dc6:	8b 5d 08             	mov    0x8(%ebp),%ebx
401dc9:	3b df                	cmp    %edi,%ebx
401dcb:	0f 95 c0             	setne  %al
401dce:	3b c7                	cmp    %edi,%eax
401dd0:	75 14                	jne    0x401de6
401dd2:	e8 50 23 00 00       	call   0x404127
401dd7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
401ddd:	e8 a5 0e 00 00       	call   0x402c87
401de2:	33 c0                	xor    %eax,%eax
401de4:	eb 7b                	jmp    0x401e61
401de6:	33 c0                	xor    %eax,%eax
401de8:	8b 75 0c             	mov    0xc(%ebp),%esi
401deb:	3b f7                	cmp    %edi,%esi
401ded:	0f 95 c0             	setne  %al
401df0:	3b c7                	cmp    %edi,%eax
401df2:	74 de                	je     0x401dd2
401df4:	33 c0                	xor    %eax,%eax
401df6:	66 39 3e             	cmp    %di,(%esi)
401df9:	0f 95 c0             	setne  %al
401dfc:	3b c7                	cmp    %edi,%eax
401dfe:	74 d2                	je     0x401dd2
401e00:	e8 ad 21 00 00       	call   0x403fb2
401e05:	89 45 08             	mov    %eax,0x8(%ebp)
401e08:	3b c7                	cmp    %edi,%eax
401e0a:	75 0d                	jne    0x401e19
401e0c:	e8 16 23 00 00       	call   0x404127
401e11:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
401e17:	eb c9                	jmp    0x401de2
401e19:	89 7d fc             	mov    %edi,-0x4(%ebp)
401e1c:	66 39 3b             	cmp    %di,(%ebx)
401e1f:	75 20                	jne    0x401e41
401e21:	e8 01 23 00 00       	call   0x404127
401e26:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
401e2c:	6a fe                	push   $0xfffffffe
401e2e:	8d 45 f0             	lea    -0x10(%ebp),%eax
401e31:	50                   	push   %eax
401e32:	68 84 22 41 00       	push   $0x412284
401e37:	e8 24 25 00 00       	call   0x404360
401e3c:	83 c4 0c             	add    $0xc,%esp
401e3f:	eb a1                	jmp    0x401de2
401e41:	50                   	push   %eax
401e42:	ff 75 10             	push   0x10(%ebp)
401e45:	56                   	push   %esi
401e46:	53                   	push   %ebx
401e47:	e8 ad 1e 00 00       	call   0x403cf9
401e4c:	83 c4 10             	add    $0x10,%esp
401e4f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401e52:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401e59:	e8 09 00 00 00       	call   0x401e67
401e5e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401e61:	e8 4f 23 00 00       	call   0x4041b5
401e66:	c3                   	ret
401e67:	ff 75 08             	push   0x8(%ebp)
401e6a:	e8 5e 05 00 00       	call   0x4023cd
401e6f:	59                   	pop    %ecx
401e70:	c3                   	ret
401e71:	8b ff                	mov    %edi,%edi
401e73:	55                   	push   %ebp
401e74:	8b ec                	mov    %esp,%ebp
401e76:	56                   	push   %esi
401e77:	8b 75 08             	mov    0x8(%ebp),%esi
401e7a:	85 f6                	test   %esi,%esi
401e7c:	75 13                	jne    0x401e91
401e7e:	e8 a4 22 00 00       	call   0x404127
401e83:	6a 16                	push   $0x16
401e85:	5e                   	pop    %esi
401e86:	89 30                	mov    %esi,(%eax)
401e88:	e8 fa 0d 00 00       	call   0x402c87
401e8d:	8b c6                	mov    %esi,%eax
401e8f:	eb 24                	jmp    0x401eb5
401e91:	68 80 00 00 00       	push   $0x80
401e96:	ff 75 10             	push   0x10(%ebp)
401e99:	ff 75 0c             	push   0xc(%ebp)
401e9c:	e8 12 ff ff ff       	call   0x401db3
401ea1:	83 c4 0c             	add    $0xc,%esp
401ea4:	89 06                	mov    %eax,(%esi)
401ea6:	85 c0                	test   %eax,%eax
401ea8:	74 04                	je     0x401eae
401eaa:	33 c0                	xor    %eax,%eax
401eac:	eb 07                	jmp    0x401eb5
401eae:	e8 74 22 00 00       	call   0x404127
401eb3:	8b 00                	mov    (%eax),%eax
401eb5:	5e                   	pop    %esi
401eb6:	5d                   	pop    %ebp
401eb7:	c3                   	ret
401eb8:	8b ff                	mov    %edi,%edi
401eba:	55                   	push   %ebp
401ebb:	8b ec                	mov    %esp,%ebp
401ebd:	8b 45 08             	mov    0x8(%ebp),%eax
401ec0:	66 8b 55 0c          	mov    0xc(%ebp),%dx
401ec4:	eb 08                	jmp    0x401ece
401ec6:	66 3b ca             	cmp    %dx,%cx
401ec9:	74 12                	je     0x401edd
401ecb:	83 c0 02             	add    $0x2,%eax
401ece:	0f b7 08             	movzwl (%eax),%ecx
401ed1:	66 85 c9             	test   %cx,%cx
401ed4:	75 f0                	jne    0x401ec6
401ed6:	66 39 10             	cmp    %dx,(%eax)
401ed9:	74 02                	je     0x401edd
401edb:	33 c0                	xor    %eax,%eax
401edd:	5d                   	pop    %ebp
401ede:	c3                   	ret
401edf:	6a 0c                	push   $0xc
401ee1:	68 70 10 41 00       	push   $0x411070
401ee6:	e8 85 22 00 00       	call   0x404170
401eeb:	33 c0                	xor    %eax,%eax
401eed:	8b 75 08             	mov    0x8(%ebp),%esi
401ef0:	33 ff                	xor    %edi,%edi
401ef2:	3b f7                	cmp    %edi,%esi
401ef4:	0f 95 c0             	setne  %al
401ef7:	3b c7                	cmp    %edi,%eax
401ef9:	75 15                	jne    0x401f10
401efb:	e8 27 22 00 00       	call   0x404127
401f00:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
401f06:	e8 7c 0d 00 00       	call   0x402c87
401f0b:	83 c8 ff             	or     $0xffffffff,%eax
401f0e:	eb 4b                	jmp    0x401f5b
401f10:	33 c0                	xor    %eax,%eax
401f12:	39 7d 0c             	cmp    %edi,0xc(%ebp)
401f15:	0f 95 c0             	setne  %al
401f18:	3b c7                	cmp    %edi,%eax
401f1a:	74 df                	je     0x401efb
401f1c:	89 75 08             	mov    %esi,0x8(%ebp)
401f1f:	56                   	push   %esi
401f20:	e8 35 04 00 00       	call   0x40235a
401f25:	59                   	pop    %ecx
401f26:	89 7d fc             	mov    %edi,-0x4(%ebp)
401f29:	56                   	push   %esi
401f2a:	e8 83 25 00 00       	call   0x4044b2
401f2f:	8b d8                	mov    %eax,%ebx
401f31:	8d 45 10             	lea    0x10(%ebp),%eax
401f34:	50                   	push   %eax
401f35:	57                   	push   %edi
401f36:	ff 75 0c             	push   0xc(%ebp)
401f39:	56                   	push   %esi
401f3a:	e8 72 26 00 00       	call   0x4045b1
401f3f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401f42:	56                   	push   %esi
401f43:	53                   	push   %ebx