405cdb:	51                   	push   %ecx
405cdc:	ff 74 b5 e8          	push   -0x18(%ebp,%esi,4)
405ce0:	ff 35 a8 3e 42 00    	push   0x423ea8
405ce6:	ff d0                	call   *%eax
405ce8:	85 c0                	test   %eax,%eax
405cea:	74 38                	je     0x405d24
405cec:	8d 45 f8             	lea    -0x8(%ebp),%eax
405cef:	50                   	push   %eax
405cf0:	ff 74 b5 e8          	push   -0x18(%ebp,%esi,4)
405cf4:	ff 35 a8 3e 42 00    	push   0x423ea8
405cfa:	ff 15 64 71 40 00    	call   *0x407164
405d00:	85 c0                	test   %eax,%eax
405d02:	75 19                	jne    0x405d1d
405d04:	57                   	push   %edi
405d05:	ff 75 f8             	push   -0x8(%ebp)
405d08:	ff 15 50 71 40 00    	call   *0x407150
405d0e:	ff 75 f8             	push   -0x8(%ebp)
405d11:	8b d8                	mov    %eax,%ebx
405d13:	ff 15 78 72 40 00    	call   *0x407278
405d19:	85 db                	test   %ebx,%ebx
405d1b:	75 07                	jne    0x405d24
405d1d:	80 27 00             	andb   $0x0,(%edi)
405d20:	85 f6                	test   %esi,%esi
405d22:	75 a4                	jne    0x405cc8
405d24:	80 3f 00             	cmpb   $0x0,(%edi)
405d27:	74 11                	je     0x405d3a
405d29:	83 7d f4 1a          	cmpl   $0x1a,-0xc(%ebp)
405d2d:	75 0b                	jne    0x405d3a
405d2f:	68 48 73 40 00       	push   $0x407348
405d34:	57                   	push   %edi
405d35:	e8 48 fe ff ff       	call   0x405b82
405d3a:	57                   	push   %edi
405d3b:	e8 88 00 00 00       	call   0x405dc8
405d40:	eb 44                	jmp    0x405d86
405d42:	80 fa fd             	cmp    $0xfd,%dl
405d45:	75 2e                	jne    0x405d75
405d47:	83 fe 1d             	cmp    $0x1d,%esi
405d4a:	75 0e                	jne    0x405d5a
405d4c:	ff 35 a8 3e 42 00    	push   0x423ea8
405d52:	57                   	push   %edi
405d53:	e8 6c fd ff ff       	call   0x405ac4
405d58:	eb 11                	jmp    0x405d6b
405d5a:	8b c6                	mov    %esi,%eax
405d5c:	c1 e0 0a             	shl    $0xa,%eax
405d5f:	05 00 40 42 00       	add    $0x424000,%eax
405d64:	50                   	push   %eax
405d65:	57                   	push   %edi
405d66:	e8 fb fd ff ff       	call   0x405b66
405d6b:	83 c6 eb             	add    $0xffffffeb,%esi
405d6e:	83 fe 07             	cmp    $0x7,%esi
405d71:	73 13                	jae    0x405d86
405d73:	eb c5                	jmp    0x405d3a
405d75:	80 fa ff             	cmp    $0xff,%dl
405d78:	75 0c                	jne    0x405d86
405d7a:	83 c8 ff             	or     $0xffffffff,%eax
405d7d:	2b c6                	sub    %esi,%eax
405d7f:	50                   	push   %eax
405d80:	57                   	push   %edi
405d81:	e8 02 fe ff ff       	call   0x405b88
405d86:	57                   	push   %edi
405d87:	e8 f0 fd ff ff       	call   0x405b7c
405d8c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405d8f:	03 f8                	add    %eax,%edi
405d91:	b8 40 2e 42 00       	mov    $0x422e40,%eax
405d96:	eb 0d                	jmp    0x405da5
405d98:	75 08                	jne    0x405da2
405d9a:	8a 11                	mov    (%ecx),%dl
405d9c:	88 17                	mov    %dl,(%edi)
405d9e:	47                   	inc    %edi
405d9f:	41                   	inc    %ecx
405da0:	eb 03                	jmp    0x405da5
405da2:	88 17                	mov    %dl,(%edi)
405da4:	47                   	inc    %edi
405da5:	8a 11                	mov    (%ecx),%dl
405da7:	84 d2                	test   %dl,%dl
405da9:	0f 85 26 fe ff ff    	jne    0x405bd5
405daf:	80 27 00             	andb   $0x0,(%edi)
405db2:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405db6:	5f                   	pop    %edi
405db7:	5e                   	pop    %esi
405db8:	5b                   	pop    %ebx
405db9:	74 09                	je     0x405dc4
405dbb:	50                   	push   %eax
405dbc:	ff 75 08             	push   0x8(%ebp)
405dbf:	e8 a2 fd ff ff       	call   0x405b66
405dc4:	c9                   	leave
405dc5:	c2 08 00             	ret    $0x8
405dc8:	53                   	push   %ebx
405dc9:	56                   	push   %esi
405dca:	8b 74 24 0c          	mov    0xc(%esp),%esi
405dce:	57                   	push   %edi
405dcf:	80 3e 5c             	cmpb   $0x5c,(%esi)
405dd2:	75 15                	jne    0x405de9
405dd4:	80 7e 01 5c          	cmpb   $0x5c,0x1(%esi)
405dd8:	75 0f                	jne    0x405de9
405dda:	80 7e 02 3f          	cmpb   $0x3f,0x2(%esi)
405dde:	75 09                	jne    0x405de9
405de0:	80 7e 03 5c          	cmpb   $0x5c,0x3(%esi)
405de4:	75 03                	jne    0x405de9
405de6:	83 c6 04             	add    $0x4,%esi
405de9:	80 3e 00             	cmpb   $0x0,(%esi)
405dec:	74 0c                	je     0x405dfa
405dee:	56                   	push   %esi
405def:	e8 d2 f8 ff ff       	call   0x4056c6
405df4:	85 c0                	test   %eax,%eax
405df6:	74 02                	je     0x405dfa
405df8:	46                   	inc    %esi
405df9:	46                   	inc    %esi
405dfa:	8a 06                	mov    (%esi),%al
405dfc:	8b de                	mov    %esi,%ebx
405dfe:	84 c0                	test   %al,%al
405e00:	8b fe                	mov    %esi,%edi
405e02:	74 39                	je     0x405e3d
405e04:	55                   	push   %ebp
405e05:	8b 2d 1c 72 40 00    	mov    0x40721c,%ebp
405e0b:	3c 1f                	cmp    $0x1f,%al
405e0d:	76 22                	jbe    0x405e31
405e0f:	50                   	push   %eax
405e10:	68 5c 93 40 00       	push   $0x40935c
405e15:	e8 6a f8 ff ff       	call   0x405684
405e1a:	80 38 00             	cmpb   $0x0,(%eax)
405e1d:	75 12                	jne    0x405e31
405e1f:	56                   	push   %esi
405e20:	ff d5                	call   *%ebp
405e22:	2b c6                	sub    %esi,%eax
405e24:	50                   	push   %eax
405e25:	56                   	push   %esi
405e26:	57                   	push   %edi
405e27:	e8 d2 f9 ff ff       	call   0x4057fe
405e2c:	57                   	push   %edi
405e2d:	ff d5                	call   *%ebp
405e2f:	8b f8                	mov    %eax,%edi
405e31:	56                   	push   %esi
405e32:	ff d5                	call   *%ebp
405e34:	8b f0                	mov    %eax,%esi
405e36:	8a 06                	mov    (%esi),%al
405e38:	84 c0                	test   %al,%al
405e3a:	75 cf                	jne    0x405e0b
405e3c:	5d                   	pop    %ebp
405e3d:	80 27 00             	andb   $0x0,(%edi)
405e40:	57                   	push   %edi
405e41:	53                   	push   %ebx
405e42:	ff 15 dc 71 40 00    	call   *0x4071dc
405e48:	8b f8                	mov    %eax,%edi
405e4a:	8a 07                	mov    (%edi),%al
405e4c:	3c 20                	cmp    $0x20,%al
405e4e:	74 04                	je     0x405e54
405e50:	3c 5c                	cmp    $0x5c,%al
405e52:	75 07                	jne    0x405e5b
405e54:	80 27 00             	andb   $0x0,(%edi)
405e57:	3b df                	cmp    %edi,%ebx
405e59:	72 e5                	jb     0x405e40
405e5b:	5f                   	pop    %edi
405e5c:	5e                   	pop    %esi
405e5d:	5b                   	pop    %ebx
405e5e:	c2 04 00             	ret    $0x4
405e61:	56                   	push   %esi
405e62:	be f0 24 42 00       	mov    $0x4224f0,%esi
405e67:	56                   	push   %esi
405e68:	ff 74 24 0c          	push   0xc(%esp)
405e6c:	ff 15 40 71 40 00    	call   *0x407140
405e72:	83 f8 ff             	cmp    $0xffffffff,%eax
405e75:	74 0b                	je     0x405e82
405e77:	50                   	push   %eax
405e78:	ff 15 38 71 40 00    	call   *0x407138
405e7e:	8b c6                	mov    %esi,%eax
405e80:	eb 02                	jmp    0x405e84
405e82:	33 c0                	xor    %eax,%eax
405e84:	5e                   	pop    %esi
405e85:	c2 04 00             	ret    $0x4
405e88:	8b 44 24 04          	mov    0x4(%esp),%eax
405e8c:	56                   	push   %esi
405e8d:	8b f0                	mov    %eax,%esi
405e8f:	57                   	push   %edi
405e90:	c1 e6 03             	shl    $0x3,%esi
405e93:	8b be 20 92 40 00    	mov    0x409220(%esi),%edi
405e99:	57                   	push   %edi
405e9a:	ff 15 0c 71 40 00    	call   *0x40710c
405ea0:	85 c0                	test   %eax,%eax
405ea2:	75 0b                	jne    0x405eaf
405ea4:	57                   	push   %edi
405ea5:	ff 15 b8 70 40 00    	call   *0x4070b8
405eab:	85 c0                	test   %eax,%eax
405ead:	74 0d                	je     0x405ebc
405eaf:	ff b6 24 92 40 00    	push   0x409224(%esi)
405eb5:	50                   	push   %eax
405eb6:	ff 15 14 71 40 00    	call   *0x407114
405ebc:	5f                   	pop    %edi
405ebd:	5e                   	pop    %esi
405ebe:	c2 04 00             	ret    $0x4
405ec1:	55                   	push   %ebp
405ec2:	8b ec                	mov    %esp,%ebp
405ec4:	83 ec 1c             	sub    $0x1c,%esp
405ec7:	56                   	push   %esi
405ec8:	8b 75 08             	mov    0x8(%ebp),%esi
405ecb:	57                   	push   %edi
405ecc:	8b 3d e4 71 40 00    	mov    0x4071e4,%edi
405ed2:	eb 0a                	jmp    0x405ede
405ed4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405ed7:	50                   	push   %eax
405ed8:	ff 15 e0 71 40 00    	call   *0x4071e0
405ede:	6a 01                	push   $0x1
405ee0:	56                   	push   %esi
405ee1:	56                   	push   %esi
405ee2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405ee5:	6a 00                	push   $0x0
405ee7:	50                   	push   %eax
405ee8:	ff d7                	call   *%edi
405eea:	85 c0                	test   %eax,%eax
405eec:	75 e6                	jne    0x405ed4
405eee:	5f                   	pop    %edi
405eef:	5e                   	pop    %esi
405ef0:	c9                   	leave
405ef1:	c2 04 00             	ret    $0x4
405ef4:	83 3d 34 2a 42 00 00 	cmpl   $0x0,0x422a34
405efb:	56                   	push   %esi
405efc:	75 2d                	jne    0x405f2b
405efe:	33 c9                	xor    %ecx,%ecx
405f00:	6a 08                	push   $0x8
405f02:	8b c1                	mov    %ecx,%eax
405f04:	5e                   	pop    %esi
405f05:	8b d0                	mov    %eax,%edx
405f07:	80 e2 01             	and    $0x1,%dl
405f0a:	f6 da                	neg    %dl
405f0c:	1b d2                	sbb    %edx,%edx
405f0e:	81 e2 20 83 b8 ed    	and    $0xedb88320,%edx
405f14:	d1 e8                	shr    $1,%eax
405f16:	33 c2                	xor    %edx,%eax
405f18:	4e                   	dec    %esi
405f19:	75 ea                	jne    0x405f05
405f1b:	89 04 8d 30 2a 42 00 	mov    %eax,0x422a30(,%ecx,4)
405f22:	41                   	inc    %ecx
405f23:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
405f29:	7c d5                	jl     0x405f00
405f2b:	8b 54 24 10          	mov    0x10(%esp),%edx
405f2f:	8b 44 24 08          	mov    0x8(%esp),%eax
405f33:	85 d2                	test   %edx,%edx
405f35:	f7 d0                	not    %eax
405f37:	76 23                	jbe    0x405f5c
405f39:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
405f3d:	57                   	push   %edi
405f3e:	0f b6 39             	movzbl (%ecx),%edi
405f41:	8b f0                	mov    %eax,%esi
405f43:	81 e6 ff 00 00 00    	and    $0xff,%esi
405f49:	33 f7                	xor    %edi,%esi
405f4b:	c1 e8 08             	shr    $0x8,%eax
405f4e:	8b 34 b5 30 2a 42 00 	mov    0x422a30(,%esi,4),%esi
405f55:	33 c6                	xor    %esi,%eax
405f57:	41                   	inc    %ecx
405f58:	4a                   	dec    %edx
405f59:	75 e3                	jne    0x405f3e
405f5b:	5f                   	pop    %edi
405f5c:	f7 d0                	not    %eax
405f5e:	5e                   	pop    %esi
405f5f:	c2 0c 00             	ret    $0xc
405f62:	b8 80 00 00 00       	mov    $0x80,%eax
405f67:	48                   	dec    %eax
405f68:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
405f6c:	75 f9                	jne    0x405f67
405f6e:	83 49 78 ff          	orl    $0xffffffff,0x78(%ecx)
405f72:	33 c0                	xor    %eax,%eax
405f74:	40                   	inc    %eax
405f75:	89 41 68             	mov    %eax,0x68(%ecx)
405f78:	89 41 64             	mov    %eax,0x64(%ecx)
405f7b:	89 41 60             	mov    %eax,0x60(%ecx)
405f7e:	89 41 5c             	mov    %eax,0x5c(%ecx)
405f81:	c3                   	ret
405f82:	55                   	push   %ebp
405f83:	8b ec                	mov    %esp,%ebp
405f85:	81 ec 90 00 00 00    	sub    $0x90,%esp
405f8b:	53                   	push   %ebx
405f8c:	56                   	push   %esi
405f8d:	57                   	push   %edi
405f8e:	6a 22                	push   $0x22
405f90:	8b f1                	mov    %ecx,%esi
405f92:	59                   	pop    %ecx
405f93:	8d bd 78 ff ff ff    	lea    -0x88(%ebp),%edi
405f99:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
405f9f:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405fa1:	83 7d d0 ff          	cmpl   $0xffffffff,-0x30(%ebp)
405fa5:	75 08                	jne    0x405faf
405fa7:	33 c0                	xor    %eax,%eax
405fa9:	40                   	inc    %eax
405faa:	e9 20 0a 00 00       	jmp    0x4069cf
405faf:	8b 5d bc             	mov    -0x44(%ebp),%ebx
405fb2:	8b 75 ac             	mov    -0x54(%ebp),%esi
405fb5:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
405fbb:	83 f8 1c             	cmp    $0x1c,%eax
405fbe:	0f 87 08 0a 00 00    	ja     0x4069cc
405fc4:	ff 24 85 d4 69 40 00 	jmp    *0x4069d4(,%eax,4)
405fcb:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
405fcf:	0f 84 e2 09 00 00    	je     0x4069b7
405fd5:	8b 45 90             	mov    -0x70(%ebp),%eax
405fd8:	ff 4d 94             	decl   -0x6c(%ebp)
405fdb:	ff 45 90             	incl   -0x70(%ebp)
405fde:	8a 00                	mov    (%eax),%al
405fe0:	3c e1                	cmp    $0xe1,%al
405fe2:	0f 87 e4 09 00 00    	ja     0x4069cc
405fe8:	0f b6 c0             	movzbl %al,%eax
405feb:	6a 2d                	push   $0x2d
405fed:	99                   	cltd
405fee:	59                   	pop    %ecx
405fef:	f7 f9                	idiv   %ecx
405ff1:	6a 09                	push   $0x9
405ff3:	59                   	pop    %ecx
405ff4:	8b f0                	mov    %eax,%esi
405ff6:	0f b6 c2             	movzbl %dl,%eax
405ff9:	99                   	cltd
405ffa:	f7 f9                	idiv   %ecx
405ffc:	8b ce                	mov    %esi,%ecx
405ffe:	0f b6 fa             	movzbl %dl,%edi
406001:	33 d2                	xor    %edx,%edx
406003:	89 7d c4             	mov    %edi,-0x3c(%ebp)
406006:	42                   	inc    %edx
406007:	d3 e2                	shl    %cl,%edx
406009:	8b c8                	mov    %eax,%ecx
40600b:	4a                   	dec    %edx
40600c:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40600f:	33 d2                	xor    %edx,%edx
406011:	42                   	inc    %edx
406012:	d3 e2                	shl    %cl,%edx
406014:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
406017:	be 00 03 00 00       	mov    $0x300,%esi
40601c:	d3 e6                	shl    %cl,%esi
40601e:	4a                   	dec    %edx
40601f:	89 55 e8             	mov    %edx,-0x18(%ebp)
406022:	81 c6 36 07 00 00    	add    $0x736,%esi
406028:	8d 3c 36             	lea    (%esi,%esi,1),%edi
40602b:	3b 7d 88             	cmp    -0x78(%ebp),%edi
40602e:	74 26                	je     0x406056
406030:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406034:	74 09                	je     0x40603f
406036:	ff 75 fc             	push   -0x4(%ebp)
406039:	ff 15 fc 70 40 00    	call   *0x4070fc
40603f:	57                   	push   %edi
406040:	6a 40                	push   $0x40
406042:	ff 15 00 71 40 00    	call   *0x407100
406048:	85 c0                	test   %eax,%eax
40604a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40604d:	0f 84 79 09 00 00    	je     0x4069cc
406053:	89 7d 88             	mov    %edi,-0x78(%ebp)
406056:	85 f6                	test   %esi,%esi
406058:	74 0c                	je     0x406066
40605a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40605d:	4e                   	dec    %esi
40605e:	66 c7 04 70 00 04    	movw   $0x400,(%eax,%esi,2)
406064:	75 f4                	jne    0x40605a
406066:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
40606a:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
40606e:	eb 26                	jmp    0x406096