401ac7:	66 83 38 5c          	cmpw   $0x5c,(%eax)
401acb:	75 0f                	jne    0x401adc
401acd:	83 b9 30 a2 00 00 03 	cmpl   $0x3,0xa230(%ecx)
401ad4:	75 06                	jne    0x401adc
401ad6:	6a 5f                	push   $0x5f
401ad8:	5a                   	pop    %edx
401ad9:	66 89 10             	mov    %dx,(%eax)
401adc:	66 83 38 3a          	cmpw   $0x3a,(%eax)
401ae0:	75 06                	jne    0x401ae8
401ae2:	6a 5f                	push   $0x5f
401ae4:	5a                   	pop    %edx
401ae5:	66 89 10             	mov    %dx,(%eax)
401ae8:	0f b7 10             	movzwl (%eax),%edx
401aeb:	66 83 fa 2f          	cmp    $0x2f,%dx
401aef:	74 0f                	je     0x401b00
401af1:	66 83 fa 5c          	cmp    $0x5c,%dx
401af5:	75 0f                	jne    0x401b06
401af7:	83 b9 30 a2 00 00 03 	cmpl   $0x3,0xa230(%ecx)
401afe:	74 06                	je     0x401b06
401b00:	6a 5c                	push   $0x5c
401b02:	5a                   	pop    %edx
401b03:	66 89 10             	mov    %dx,(%eax)
401b06:	40                   	inc    %eax
401b07:	40                   	inc    %eax
401b08:	66 83 38 00          	cmpw   $0x0,(%eax)
401b0c:	75 b9                	jne    0x401ac7
401b0e:	c2 04 00             	ret    $0x4
401b11:	53                   	push   %ebx
401b12:	56                   	push   %esi
401b13:	8b f1                	mov    %ecx,%esi
401b15:	57                   	push   %edi
401b16:	8b be 48 57 00 00    	mov    0x5748(%esi),%edi
401b1c:	03 be 40 a2 00 00    	add    0xa240(%esi),%edi
401b22:	33 db                	xor    %ebx,%ebx
401b24:	83 be 30 a2 00 00 02 	cmpl   $0x2,0xa230(%esi)
401b2b:	75 08                	jne    0x401b35
401b2d:	8b 86 5c 57 00 00    	mov    0x575c(%esi),%eax
401b33:	eb 11                	jmp    0x401b46
401b35:	ff b6 5c 57 00 00    	push   0x575c(%esi)
401b3b:	e8 94 f5 ff ff       	call   0x4010d4
401b40:	03 86 9c 57 00 00    	add    0x579c(%esi),%eax
401b46:	03 f8                	add    %eax,%edi
401b48:	8b c7                	mov    %edi,%eax
401b4a:	5f                   	pop    %edi
401b4b:	13 db                	adc    %ebx,%ebx
401b4d:	5e                   	pop    %esi
401b4e:	8b d3                	mov    %ebx,%edx
401b50:	5b                   	pop    %ebx
401b51:	c3                   	ret
401b52:	ff 74 24 04          	push   0x4(%esp)
401b56:	83 c1 20             	add    $0x20,%ecx
401b59:	51                   	push   %ecx
401b5a:	e8 a2 88 01 00       	call   0x41a401
401b5f:	f7 d8                	neg    %eax
401b61:	59                   	pop    %ecx
401b62:	1b c0                	sbb    %eax,%eax
401b64:	59                   	pop    %ecx
401b65:	40                   	inc    %eax
401b66:	c2 04 00             	ret    $0x4
401b69:	55                   	push   %ebp
401b6a:	8b ec                	mov    %esp,%ebp
401b6c:	83 ec 4c             	sub    $0x4c,%esp
401b6f:	8b 45 08             	mov    0x8(%ebp),%eax
401b72:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
401b76:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
401b7a:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
401b7d:	89 45 fc             	mov    %eax,-0x4(%ebp)
401b80:	e8 ed f7 00 00       	call   0x411372
401b85:	c9                   	leave
401b86:	c2 04 00             	ret    $0x4
401b89:	56                   	push   %esi
401b8a:	8b f1                	mov    %ecx,%esi
401b8c:	8b 86 04 57 00 00    	mov    0x5704(%esi),%eax
401b92:	80 b8 20 41 00 00 00 	cmpb   $0x0,0x4120(%eax)
401b99:	75 32                	jne    0x401bcd
401b9b:	05 20 40 00 00       	add    $0x4020,%eax
401ba0:	50                   	push   %eax
401ba1:	8d 46 1e             	lea    0x1e(%esi),%eax
401ba4:	50                   	push   %eax
401ba5:	6a 02                	push   $0x2
401ba7:	e8 1e fa 00 00       	call   0x4115ca
401bac:	84 c0                	test   %al,%al
401bae:	75 1d                	jne    0x401bcd
401bb0:	8b ce                	mov    %esi,%ecx
401bb2:	e8 18 6e 00 00       	call   0x4089cf
401bb7:	6a 02                	push   $0x2
401bb9:	e8 ab ff ff ff       	call   0x401b69
401bbe:	68 ff 00 00 00       	push   $0xff
401bc3:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
401bc8:	e8 de 48 00 00       	call   0x4064ab
401bcd:	5e                   	pop    %esi
401bce:	c3                   	ret
401bcf:	8b 44 24 04          	mov    0x4(%esp),%eax
401bd3:	3b 41 08             	cmp    0x8(%ecx),%eax
401bd6:	76 0b                	jbe    0x401be3
401bd8:	2b 41 04             	sub    0x4(%ecx),%eax
401bdb:	50                   	push   %eax
401bdc:	e8 25 f5 ff ff       	call   0x401106
401be1:	eb 03                	jmp    0x401be6
401be3:	89 41 04             	mov    %eax,0x4(%ecx)
401be6:	c2 04 00             	ret    $0x4
401be9:	e9 21 0a 01 00       	jmp    0x41260f
401bee:	56                   	push   %esi
401bef:	8b f1                	mov    %ecx,%esi
401bf1:	e8 9f 71 00 00       	call   0x408d95
401bf6:	8b 8e 20 a2 00 00    	mov    0xa220(%esi),%ecx
401bfc:	3b c8                	cmp    %eax,%ecx
401bfe:	75 1e                	jne    0x401c1e
401c00:	8b 8e 24 a2 00 00    	mov    0xa224(%esi),%ecx
401c06:	3b ca                	cmp    %edx,%ecx
401c08:	75 14                	jne    0x401c1e
401c0a:	8b 8e 28 a2 00 00    	mov    0xa228(%esi),%ecx
401c10:	3b c8                	cmp    %eax,%ecx
401c12:	75 0a                	jne    0x401c1e
401c14:	8b 86 2c a2 00 00    	mov    0xa22c(%esi),%eax
401c1a:	3b c2                	cmp    %edx,%eax
401c1c:	74 17                	je     0x401c35
401c1e:	83 c6 1e             	add    $0x1e,%esi
401c21:	56                   	push   %esi
401c22:	6a 37                	push   $0x37
401c24:	e8 87 48 00 00       	call   0x4064b0
401c29:	6a 01                	push   $0x1
401c2b:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
401c30:	e8 d5 47 00 00       	call   0x40640a
401c35:	5e                   	pop    %esi
401c36:	c3                   	ret
401c37:	56                   	push   %esi
401c38:	8b f1                	mov    %ecx,%esi
401c3a:	8d 46 1e             	lea    0x1e(%esi),%eax
401c3d:	50                   	push   %eax
401c3e:	6a 18                	push   $0x18
401c40:	e8 6b 48 00 00       	call   0x4064b0
401c45:	6a 03                	push   $0x3
401c47:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
401c4c:	c6 86 44 a2 00 00 01 	movb   $0x1,0xa244(%esi)
401c53:	e8 b2 47 00 00       	call   0x40640a
401c58:	5e                   	pop    %esi
401c59:	c3                   	ret
401c5a:	ff 74 24 04          	push   0x4(%esp)
401c5e:	83 c1 1e             	add    $0x1e,%ecx
401c61:	51                   	push   %ecx
401c62:	6a 20                	push   $0x20
401c64:	e8 70 48 00 00       	call   0x4064d9
401c69:	6a 01                	push   $0x1
401c6b:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
401c70:	e8 95 47 00 00       	call   0x40640a
401c75:	c2 04 00             	ret    $0x4
401c78:	b8 b3 91 42 00       	mov    $0x4291b3,%eax
401c7d:	e8 36 82 01 00       	call   0x419eb8
401c82:	b8 74 28 00 00       	mov    $0x2874,%eax
401c87:	e8 44 88 01 00       	call   0x41a4d0
401c8c:	53                   	push   %ebx
401c8d:	56                   	push   %esi
401c8e:	8b d9                	mov    %ecx,%ebx
401c90:	57                   	push   %edi
401c91:	53                   	push   %ebx
401c92:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401c95:	e8 35 99 00 00       	call   0x40b5cf
401c9a:	33 ff                	xor    %edi,%edi
401c9c:	80 bb 3c a2 00 00 00 	cmpb   $0x0,0xa23c(%ebx)
401ca3:	89 7d fc             	mov    %edi,-0x4(%ebp)
401ca6:	74 5c                	je     0x401d04
401ca8:	8b 83 40 a2 00 00    	mov    0xa240(%ebx),%eax
401cae:	8b 93 24 a2 00 00    	mov    0xa224(%ebx),%edx
401cb4:	33 c9                	xor    %ecx,%ecx
401cb6:	83 c0 07             	add    $0x7,%eax
401cb9:	13 cf                	adc    %edi,%ecx
401cbb:	3b d1                	cmp    %ecx,%edx
401cbd:	7c 45                	jl     0x401d04
401cbf:	7f 0a                	jg     0x401ccb
401cc1:	8b 8b 20 a2 00 00    	mov    0xa220(%ebx),%ecx
401cc7:	3b c8                	cmp    %eax,%ecx
401cc9:	76 39                	jbe    0x401d04
401ccb:	8b cb                	mov    %ebx,%ecx
401ccd:	c6 45 f2 01          	movb   $0x1,-0xe(%ebp)
401cd1:	e8 b3 fe ff ff       	call   0x401b89
401cd6:	8b 03                	mov    (%ebx),%eax
401cd8:	6a 08                	push   $0x8
401cda:	8d 4d d8             	lea    -0x28(%ebp),%ecx
401cdd:	51                   	push   %ecx
401cde:	8b cb                	mov    %ebx,%ecx
401ce0:	ff 50 08             	call   *0x8(%eax)
401ce3:	83 f8 08             	cmp    $0x8,%eax
401ce6:	74 22                	je     0x401d0a
401ce8:	8b cb                	mov    %ebx,%ecx
401cea:	e8 ff fe ff ff       	call   0x401bee
401cef:	39 7d b8             	cmp    %edi,-0x48(%ebp)
401cf2:	74 09                	je     0x401cfd
401cf4:	ff 75 b8             	push   -0x48(%ebp)
401cf7:	e8 e6 81 01 00       	call   0x419ee2
401cfc:	59                   	pop    %ecx
401cfd:	33 c0                	xor    %eax,%eax
401cff:	e9 d2 09 00 00       	jmp    0x4026d6
401d04:	c6 45 f2 00          	movb   $0x0,-0xe(%ebp)
401d08:	eb 27                	jmp    0x401d31
401d0a:	57                   	push   %edi
401d0b:	57                   	push   %edi
401d0c:	57                   	push   %edi
401d0d:	57                   	push   %edi
401d0e:	8d 45 d8             	lea    -0x28(%ebp),%eax
401d11:	50                   	push   %eax
401d12:	8b 83 04 57 00 00    	mov    0x5704(%ebx),%eax
401d18:	05 20 40 00 00       	add    $0x4020,%eax
401d1d:	50                   	push   %eax
401d1e:	6a 04                	push   $0x4
401d20:	8d b3 24 10 00 00    	lea    0x1024(%ebx),%esi
401d26:	57                   	push   %edi
401d27:	8b ce                	mov    %esi,%ecx
401d29:	e8 09 44 00 00       	call   0x406137
401d2e:	89 75 d4             	mov    %esi,-0x2c(%ebp)
401d31:	6a 07                	push   $0x7
401d33:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d36:	e8 26 96 00 00       	call   0x40b361
401d3b:	39 7d cc             	cmp    %edi,-0x34(%ebp)
401d3e:	74 a8                	je     0x401ce8
401d40:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d43:	e8 cb 96 00 00       	call   0x40b413
401d48:	0f b7 c0             	movzwl %ax,%eax
401d4b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d4e:	89 83 2c 57 00 00    	mov    %eax,0x572c(%ebx)
401d54:	c6 83 3c 57 00 00 00 	movb   $0x0,0x573c(%ebx)
401d5b:	e8 9b 96 00 00       	call   0x40b3fb
401d60:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d63:	0f b6 f0             	movzbl %al,%esi
401d66:	e8 a8 96 00 00       	call   0x40b413
401d6b:	0f b7 c0             	movzwl %ax,%eax
401d6e:	89 83 34 57 00 00    	mov    %eax,0x5734(%ebx)
401d74:	c1 e8 0e             	shr    $0xe,%eax
401d77:	24 01                	and    $0x1,%al
401d79:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401d7c:	88 83 3c 57 00 00    	mov    %al,0x573c(%ebx)
401d82:	e8 8c 96 00 00       	call   0x40b413
401d87:	0f b7 c0             	movzwl %ax,%eax
401d8a:	89 83 38 57 00 00    	mov    %eax,0x5738(%ebx)
401d90:	89 b3 30 57 00 00    	mov    %esi,0x5730(%ebx)
401d96:	83 f8 07             	cmp    $0x7,%eax
401d99:	73 0c                	jae    0x401da7
401d9b:	8b cb                	mov    %ebx,%ecx
401d9d:	e8 95 fe ff ff       	call   0x401c37
401da2:	e9 48 ff ff ff       	jmp    0x401cef
401da7:	83 ee 73             	sub    $0x73,%esi
401daa:	6a 03                	push   $0x3
401dac:	5f                   	pop    %edi
401dad:	74 2b                	je     0x401dda
401daf:	4e                   	dec    %esi
401db0:	74 1c                	je     0x401dce
401db2:	83 ee 06             	sub    $0x6,%esi
401db5:	74 0f                	je     0x401dc6
401db7:	4e                   	dec    %esi
401db8:	75 2a                	jne    0x401de4
401dba:	c7 83 30 57 00 00 05 	movl   $0x5,0x5730(%ebx)
401dc1:	00 00 00
401dc4:	eb 1e                	jmp    0x401de4
401dc6:	89 bb 30 57 00 00    	mov    %edi,0x5730(%ebx)
401dcc:	eb 16                	jmp    0x401de4
401dce:	c7 83 30 57 00 00 02 	movl   $0x2,0x5730(%ebx)
401dd5:	00 00 00
401dd8:	eb 0a                	jmp    0x401de4
401dda:	c7 83 30 57 00 00 01 	movl   $0x1,0x5730(%ebx)
401de1:	00 00 00
401de4:	8b 8b 30 57 00 00    	mov    0x5730(%ebx),%ecx
401dea:	89 8b 24 57 00 00    	mov    %ecx,0x5724(%ebx)
401df0:	83 f9 75             	cmp    $0x75,%ecx
401df3:	75 04                	jne    0x401df9
401df5:	6a 06                	push   $0x6
401df7:	eb 12                	jmp    0x401e0b
401df9:	83 f9 01             	cmp    $0x1,%ecx
401dfc:	75 09                	jne    0x401e07
401dfe:	f6 83 34 57 00 00 02 	testb  $0x2,0x5734(%ebx)
401e05:	75 ee                	jne    0x401df5
401e07:	83 c0 f9             	add    $0xfffffff9,%eax
401e0a:	50                   	push   %eax
401e0b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401e0e:	e8 4e 95 00 00       	call   0x40b361
401e13:	ff b3 38 57 00 00    	push   0x5738(%ebx)
401e19:	8b cb                	mov    %ebx,%ecx
401e1b:	e8 b4 f2 ff ff       	call   0x4010d4
401e20:	33 c9                	xor    %ecx,%ecx
401e22:	03 83 20 a2 00 00    	add    0xa220(%ebx),%eax
401e28:	13 8b 24 a2 00 00    	adc    0xa224(%ebx),%ecx
401e2e:	89 83 28 a2 00 00    	mov    %eax,0xa228(%ebx)
401e34:	8b 83 30 57 00 00    	mov    0x5730(%ebx),%eax
401e3a:	89 8b 2c a2 00 00    	mov    %ecx,0xa22c(%ebx)
401e40:	83 f8 01             	cmp    $0x1,%eax
401e43:	0f 84 d5 06 00 00    	je     0x40251e
401e49:	0f 8e a5 06 00 00    	jle    0x4024f4
401e4f:	3b c7                	cmp    %edi,%eax
401e51:	0f 8e 8d 00 00 00    	jle    0x401ee4
401e57:	83 f8 05             	cmp    $0x5,%eax
401e5a:	0f 85 94 06 00 00    	jne    0x4024f4
401e60:	50                   	push   %eax
401e61:	8d 83 d0 7a 00 00    	lea    0x7ad0(%ebx),%eax
401e67:	8d bb c8 7a 00 00    	lea    0x7ac8(%ebx),%edi
401e6d:	59                   	pop    %ecx
401e6e:	8d b3 2c 57 00 00    	lea    0x572c(%ebx),%esi
401e74:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401e76:	8a 08                	mov    (%eax),%cl
401e78:	8b 38                	mov    (%eax),%edi
401e7a:	80 e1 01             	and    $0x1,%cl
401e7d:	88 8b e4 7a 00 00    	mov    %cl,0x7ae4(%ebx)
401e83:	8b cf                	mov    %edi,%ecx
401e85:	c1 e9 02             	shr    $0x2,%ecx
401e88:	80 e1 01             	and    $0x1,%cl
401e8b:	88 8b e6 7a 00 00    	mov    %cl,0x7ae6(%ebx)
401e91:	8b c7                	mov    %edi,%eax
401e93:	d1 e8                	shr    $1,%eax
401e95:	8b cf                	mov    %edi,%ecx
401e97:	c1 e9 03             	shr    $0x3,%ecx
401e9a:	24 01                	and    $0x1,%al
401e9c:	80 e1 01             	and    $0x1,%cl
401e9f:	8d b3 e7 7a 00 00    	lea    0x7ae7(%ebx),%esi
401ea5:	88 83 e5 7a 00 00    	mov    %al,0x7ae5(%ebx)
401eab:	88 0e                	mov    %cl,(%esi)
401ead:	84 c0                	test   %al,%al
401eaf:	74 0e                	je     0x401ebf
401eb1:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401eb4:	e8 8f 95 00 00       	call   0x40b448
401eb9:	89 83 dc 7a 00 00    	mov    %eax,0x7adc(%ebx)
401ebf:	80 3e 00             	cmpb   $0x0,(%esi)
401ec2:	0f 84 10 07 00 00    	je     0x4025d8
401ec8:	8d 4d b8             	lea    -0x48(%ebp),%ecx
401ecb:	e8 43 95 00 00       	call   0x40b413
401ed0:	0f b7 c0             	movzwl %ax,%eax
401ed3:	89 83 e0 7a 00 00    	mov    %eax,0x7ae0(%ebx)
401ed9:	89 83 58 a2 00 00    	mov    %eax,0xa258(%ebx)
401edf:	e9 f4 06 00 00       	jmp    0x4025d8
401ee4:	83 f8 02             	cmp    $0x2,%eax
401ee7:	0f 94 45 f3          	sete   -0xd(%ebp)
401eeb:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
401eef:	8d 83 c8 57 00 00    	lea    0x57c8(%ebx),%eax
401ef5:	75 06                	jne    0x401efd
401ef7:	8d 83 08 7b 00 00    	lea    0x7b08(%ebx),%eax
401efd:	8b f8                	mov    %eax,%edi
401eff:	6a 00                	push   $0x0
401f01:	8b cf                	mov    %edi,%ecx
401f03:	89 45 ec             	mov    %eax,-0x14(%ebp)
401f06:	e8 b7 7b 00 00       	call   0x409ac2
401f0b:	6a 05                	push   $0x5
401f0d:	59                   	pop    %ecx
401f0e:	8d b3 2c 57 00 00    	lea    0x572c(%ebx),%esi
401f14:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401f16:	8b 75 ec             	mov    -0x14(%ebp),%esi
401f19:	8a 46 08             	mov    0x8(%esi),%al
401f1c:	24 01                	and    $0x1,%al
401f1e:	88 86 88 10 00 00    	mov    %al,0x1088(%esi)
401f24:	8b 46 08             	mov    0x8(%esi),%eax
401f27:	8b c8                	mov    %eax,%ecx
401f29:	d1 e9                	shr    $1,%ecx
401f2b:	80 e1 01             	and    $0x1,%cl
401f2e:	88 8e 89 10 00 00    	mov    %cl,0x1089(%esi)