401982:	66 89 06             	mov    %ax,(%esi)
401985:	83 c6 02             	add    $0x2,%esi
401988:	57                   	push   %edi
401989:	e8 60 f9 ff ff       	call   0x4012ee
40198e:	53                   	push   %ebx
40198f:	f7 d8                	neg    %eax
401991:	68 14 0d 41 00       	push   $0x410d14
401996:	1b ff                	sbb    %edi,%edi
401998:	6a 00                	push   $0x0
40199a:	58                   	pop    %eax
40199b:	81 e7 f8 3d 41 00    	and    $0x413df8,%edi
4019a1:	0f 95 c0             	setne  %al
4019a4:	50                   	push   %eax
4019a5:	e8 c0 f6 ff ff       	call   0x40106a
4019aa:	83 c4 10             	add    $0x10,%esp
4019ad:	66 83 3b 22          	cmpw   $0x22,(%ebx)
4019b1:	75 26                	jne    0x4019d9
4019b3:	33 c0                	xor    %eax,%eax
4019b5:	66 83 3e 22          	cmpw   $0x22,(%esi)
4019b9:	53                   	push   %ebx
4019ba:	0f 94 c0             	sete   %al
4019bd:	68 48 0d 41 00       	push   $0x410d48
4019c2:	50                   	push   %eax
4019c3:	e8 a2 f6 ff ff       	call   0x40106a
4019c8:	33 c0                	xor    %eax,%eax
4019ca:	66 89 06             	mov    %ax,(%esi)
4019cd:	83 c4 0c             	add    $0xc,%esp
4019d0:	83 c6 02             	add    $0x2,%esi
4019d3:	83 c3 02             	add    $0x2,%ebx
4019d6:	83 c7 02             	add    $0x2,%edi
4019d9:	6a 0f                	push   $0xf
4019db:	68 90 0d 41 00       	push   $0x410d90
4019e0:	53                   	push   %ebx
4019e1:	e8 6b 07 00 00       	call   0x402151
4019e6:	83 c4 0c             	add    $0xc,%esp
4019e9:	85 c0                	test   %eax,%eax
4019eb:	74 1f                	je     0x401a0c
4019ed:	66 83 7b 1e 22       	cmpw   $0x22,0x1e(%ebx)
4019f2:	74 18                	je     0x401a0c
4019f4:	33 c0                	xor    %eax,%eax
4019f6:	66 83 3e 22          	cmpw   $0x22,(%esi)
4019fa:	53                   	push   %ebx
4019fb:	0f 95 c0             	setne  %al
4019fe:	68 b0 0d 41 00       	push   $0x410db0
401a03:	50                   	push   %eax
401a04:	e8 61 f6 ff ff       	call   0x40106a
401a09:	83 c4 0c             	add    $0xc,%esp
401a0c:	0f b7 06             	movzwl (%esi),%eax
401a0f:	66 85 c0             	test   %ax,%ax
401a12:	74 26                	je     0x401a3a
401a14:	6a 08                	push   $0x8
401a16:	50                   	push   %eax
401a17:	e8 3f 10 00 00       	call   0x402a5b
401a1c:	59                   	pop    %ecx
401a1d:	59                   	pop    %ecx
401a1e:	85 c0                	test   %eax,%eax
401a20:	74 18                	je     0x401a3a
401a22:	33 c0                	xor    %eax,%eax
401a24:	66 89 06             	mov    %ax,(%esi)
401a27:	eb 0e                	jmp    0x401a37
401a29:	6a 08                	push   $0x8
401a2b:	50                   	push   %eax
401a2c:	e8 2a 10 00 00       	call   0x402a5b
401a31:	59                   	pop    %ecx
401a32:	59                   	pop    %ecx
401a33:	85 c0                	test   %eax,%eax
401a35:	74 0b                	je     0x401a42
401a37:	83 c6 02             	add    $0x2,%esi
401a3a:	0f b7 06             	movzwl (%esi),%eax
401a3d:	66 85 c0             	test   %ax,%ax
401a40:	75 e7                	jne    0x401a29
401a42:	8b 45 0c             	mov    0xc(%ebp),%eax
401a45:	89 30                	mov    %esi,(%eax)
401a47:	8b c7                	mov    %edi,%eax
401a49:	5f                   	pop    %edi
401a4a:	5e                   	pop    %esi
401a4b:	5b                   	pop    %ebx
401a4c:	c9                   	leave
401a4d:	c3                   	ret
401a4e:	55                   	push   %ebp
401a4f:	8b ec                	mov    %esp,%ebp
401a51:	81 ec 30 07 00 00    	sub    $0x730,%esp
401a57:	a1 84 22 41 00       	mov    0x412284,%eax
401a5c:	33 c5                	xor    %ebp,%eax
401a5e:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a61:	53                   	push   %ebx
401a62:	56                   	push   %esi
401a63:	57                   	push   %edi
401a64:	ff 15 04 f0 40 00    	call   *0x40f004
401a6a:	66 83 38 22          	cmpw   $0x22,(%eax)
401a6e:	74 04                	je     0x401a74
401a70:	6a 20                	push   $0x20
401a72:	eb 05                	jmp    0x401a79
401a74:	6a 22                	push   $0x22
401a76:	83 c0 04             	add    $0x4,%eax
401a79:	59                   	pop    %ecx
401a7a:	51                   	push   %ecx
401a7b:	50                   	push   %eax
401a7c:	e8 37 04 00 00       	call   0x401eb8
401a81:	59                   	pop    %ecx
401a82:	59                   	pop    %ecx
401a83:	85 c0                	test   %eax,%eax
401a85:	75 0c                	jne    0x401a93
401a87:	c7 85 d4 f8 ff ff 14 	movl   $0x410b14,-0x72c(%ebp)
401a8e:	0b 41 00
401a91:	eb 24                	jmp    0x401ab7
401a93:	8d 70 02             	lea    0x2(%eax),%esi
401a96:	eb 11                	jmp    0x401aa9
401a98:	6a 08                	push   $0x8
401a9a:	50                   	push   %eax
401a9b:	e8 bb 0f 00 00       	call   0x402a5b
401aa0:	59                   	pop    %ecx
401aa1:	59                   	pop    %ecx
401aa2:	85 c0                	test   %eax,%eax
401aa4:	74 0b                	je     0x401ab1
401aa6:	83 c6 02             	add    $0x2,%esi
401aa9:	0f b7 06             	movzwl (%esi),%eax
401aac:	66 85 c0             	test   %ax,%ax
401aaf:	75 e7                	jne    0x401a98
401ab1:	89 b5 d4 f8 ff ff    	mov    %esi,-0x72c(%ebp)
401ab7:	bf 04 01 00 00       	mov    $0x104,%edi
401abc:	57                   	push   %edi
401abd:	be e0 3b 41 00       	mov    $0x413be0,%esi
401ac2:	56                   	push   %esi
401ac3:	6a 00                	push   $0x0
401ac5:	ff 15 28 f0 40 00    	call   *0x40f028
401acb:	66 83 3d e0 3b 41 00 	cmpw   $0x22,0x413be0
401ad2:	22
401ad3:	74 08                	je     0x401add
401ad5:	89 b5 dc f8 ff ff    	mov    %esi,-0x724(%ebp)
401adb:	eb 0d                	jmp    0x401aea
401add:	c7 85 dc f8 ff ff e2 	movl   $0x413be2,-0x724(%ebp)
401ae4:	3b 41 00
401ae7:	83 e8 02             	sub    $0x2,%eax
401aea:	8b 95 dc f8 ff ff    	mov    -0x724(%ebp),%edx
401af0:	33 c9                	xor    %ecx,%ecx
401af2:	8d 9d e0 f8 ff ff    	lea    -0x720(%ebp),%ebx
401af8:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
401afc:	c6 05 c0 2e 41 00 50 	movb   $0x50,0x412ec0
401b03:	e8 0e f6 ff ff       	call   0x401116
401b08:	8b d8                	mov    %eax,%ebx
401b0a:	33 c0                	xor    %eax,%eax
401b0c:	85 db                	test   %ebx,%ebx
401b0e:	0f 95 c0             	setne  %al
401b11:	68 00 0e 41 00       	push   $0x410e00
401b16:	50                   	push   %eax
401b17:	e8 4e f5 ff ff       	call   0x40106a
401b1c:	59                   	pop    %ecx
401b1d:	8d 83 04 01 00 00    	lea    0x104(%ebx),%eax
401b23:	33 f6                	xor    %esi,%esi
401b25:	59                   	pop    %ecx
401b26:	8b cb                	mov    %ebx,%ecx
401b28:	3b d8                	cmp    %eax,%ebx
401b2a:	73 15                	jae    0x401b41
401b2c:	8a 11                	mov    (%ecx),%dl
401b2e:	80 fa 0d             	cmp    $0xd,%dl
401b31:	74 0c                	je     0x401b3f
401b33:	80 fa 0a             	cmp    $0xa,%dl
401b36:	74 07                	je     0x401b3f
401b38:	41                   	inc    %ecx
401b39:	3b c8                	cmp    %eax,%ecx
401b3b:	72 ef                	jb     0x401b2c
401b3d:	eb 02                	jmp    0x401b41
401b3f:	8b f1                	mov    %ecx,%esi
401b41:	33 c0                	xor    %eax,%eax
401b43:	85 f6                	test   %esi,%esi
401b45:	0f 95 c0             	setne  %al
401b48:	68 18 0e 41 00       	push   $0x410e18
401b4d:	50                   	push   %eax
401b4e:	e8 17 f5 ff ff       	call   0x40106a
401b53:	59                   	pop    %ecx
401b54:	59                   	pop    %ecx
401b55:	57                   	push   %edi
401b56:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
401b5c:	50                   	push   %eax
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