405a4e:	85 c0                	test   %eax,%eax
405a50:	74 0d                	je     0x405a5f
405a52:	8d 41 30             	lea    0x30(%ecx),%eax
405a55:	89 44 24 1c          	mov    %eax,0x1c(%esp)
405a59:	8b 00                	mov    (%eax),%eax
405a5b:	8b 00                	mov    (%eax),%eax
405a5d:	eb 06                	jmp    0x405a65
405a5f:	33 c0                	xor    %eax,%eax
405a61:	89 54 24 1c          	mov    %edx,0x1c(%esp)
405a65:	99                   	cltd
405a66:	8b d8                	mov    %eax,%ebx
405a68:	8b c2                	mov    %edx,%eax
405a6a:	89 44 24 10          	mov    %eax,0x10(%esp)
405a6e:	85 c0                	test   %eax,%eax
405a70:	7c 45                	jl     0x405ab7
405a72:	7f 04                	jg     0x405a78
405a74:	85 db                	test   %ebx,%ebx
405a76:	74 3f                	je     0x405ab7
405a78:	3b f8                	cmp    %eax,%edi
405a7a:	7f 0c                	jg     0x405a88
405a7c:	7c 04                	jl     0x405a82
405a7e:	3b f3                	cmp    %ebx,%esi
405a80:	73 06                	jae    0x405a88
405a82:	8b de                	mov    %esi,%ebx
405a84:	89 7c 24 10          	mov    %edi,0x10(%esp)
405a88:	8b 55 08             	mov    0x8(%ebp),%edx
405a8b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405a8f:	53                   	push   %ebx
405a90:	e8 23 e0 ff ff       	call   0x403ab8
405a95:	8b 44 24 20          	mov    0x20(%esp),%eax
405a99:	2b f3                	sub    %ebx,%esi
405a9b:	59                   	pop    %ecx
405a9c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
405aa0:	1b 7c 24 10          	sbb    0x10(%esp),%edi
405aa4:	8b 00                	mov    (%eax),%eax
405aa6:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
405aaa:	29 18                	sub    %ebx,(%eax)
405aac:	8b 41 20             	mov    0x20(%ecx),%eax
405aaf:	01 18                	add    %ebx,(%eax)
405ab1:	8b 44 24 10          	mov    0x10(%esp),%eax
405ab5:	eb 26                	jmp    0x405add
405ab7:	8b 45 08             	mov    0x8(%ebp),%eax
405aba:	8b 11                	mov    (%ecx),%edx
405abc:	0f b6 00             	movzbl (%eax),%eax
405abf:	50                   	push   %eax
405ac0:	ff 52 0c             	call   *0xc(%edx)
405ac3:	83 f8 ff             	cmp    $0xffffffff,%eax
405ac6:	74 44                	je     0x405b0c
405ac8:	83 c6 ff             	add    $0xffffffff,%esi
405acb:	83 d7 ff             	adc    $0xffffffff,%edi
405ace:	33 c9                	xor    %ecx,%ecx
405ad0:	41                   	inc    %ecx
405ad1:	33 c0                	xor    %eax,%eax
405ad3:	8b d9                	mov    %ecx,%ebx
405ad5:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
405ad9:	8b 4c 24 20          	mov    0x20(%esp),%ecx
405add:	8b 54 24 14          	mov    0x14(%esp),%edx
405ae1:	03 d3                	add    %ebx,%edx
405ae3:	8b 5c 24 18          	mov    0x18(%esp),%ebx
405ae7:	89 54 24 14          	mov    %edx,0x14(%esp)
405aeb:	13 d8                	adc    %eax,%ebx
405aed:	8b 44 24 1c          	mov    0x1c(%esp),%eax
405af1:	01 45 08             	add    %eax,0x8(%ebp)
405af4:	89 5c 24 18          	mov    %ebx,0x18(%esp)
405af8:	85 ff                	test   %edi,%edi
405afa:	0f 8f 42 ff ff ff    	jg     0x405a42
405b00:	7c 12                	jl     0x405b14
405b02:	85 f6                	test   %esi,%esi
405b04:	0f 85 38 ff ff ff    	jne    0x405a42
405b0a:	eb 08                	jmp    0x405b14
405b0c:	8b 54 24 14          	mov    0x14(%esp),%edx
405b10:	8b 5c 24 18          	mov    0x18(%esp),%ebx
405b14:	5f                   	pop    %edi
405b15:	8b c2                	mov    %edx,%eax
405b17:	8b d3                	mov    %ebx,%edx
405b19:	5e                   	pop    %esi
405b1a:	5b                   	pop    %ebx
405b1b:	8b e5                	mov    %ebp,%esp
405b1d:	5d                   	pop    %ebp
405b1e:	c2 0c 00             	ret    $0xc
405b21:	55                   	push   %ebp
405b22:	8b ec                	mov    %esp,%ebp
405b24:	83 e4 f8             	and    $0xfffffff8,%esp
405b27:	83 ec 1c             	sub    $0x1c,%esp
405b2a:	53                   	push   %ebx
405b2b:	56                   	push   %esi
405b2c:	57                   	push   %edi
405b2d:	8b 7d 10             	mov    0x10(%ebp),%edi
405b30:	33 d2                	xor    %edx,%edx
405b32:	33 db                	xor    %ebx,%ebx
405b34:	89 4c 24 20          	mov    %ecx,0x20(%esp)
405b38:	89 54 24 14          	mov    %edx,0x14(%esp)
405b3c:	89 5c 24 18          	mov    %ebx,0x18(%esp)
405b40:	85 ff                	test   %edi,%edi
405b42:	0f 8c d9 00 00 00    	jl     0x405c21
405b48:	8b 75 0c             	mov    0xc(%ebp),%esi
405b4b:	0f 8e be 00 00 00    	jle    0x405c0f
405b51:	8b 41 1c             	mov    0x1c(%ecx),%eax
405b54:	8d 51 2c             	lea    0x2c(%ecx),%edx
405b57:	8b 00                	mov    (%eax),%eax
405b59:	89 44 24 24          	mov    %eax,0x24(%esp)
405b5d:	85 c0                	test   %eax,%eax
405b5f:	74 0d                	je     0x405b6e
405b61:	8d 41 2c             	lea    0x2c(%ecx),%eax
405b64:	89 44 24 1c          	mov    %eax,0x1c(%esp)
405b68:	8b 00                	mov    (%eax),%eax
405b6a:	8b 00                	mov    (%eax),%eax
405b6c:	eb 06                	jmp    0x405b74
405b6e:	33 c0                	xor    %eax,%eax
405b70:	89 54 24 1c          	mov    %edx,0x1c(%esp)
405b74:	99                   	cltd
405b75:	8b d8                	mov    %eax,%ebx
405b77:	8b c2                	mov    %edx,%eax
405b79:	89 44 24 10          	mov    %eax,0x10(%esp)
405b7d:	85 c0                	test   %eax,%eax
405b7f:	7c 45                	jl     0x405bc6
405b81:	7f 04                	jg     0x405b87
405b83:	85 db                	test   %ebx,%ebx
405b85:	74 3f                	je     0x405bc6
405b87:	3b f8                	cmp    %eax,%edi
405b89:	7f 0c                	jg     0x405b97
405b8b:	7c 04                	jl     0x405b91
405b8d:	3b f3                	cmp    %ebx,%esi
405b8f:	73 06                	jae    0x405b97
405b91:	8b de                	mov    %esi,%ebx
405b93:	89 7c 24 10          	mov    %edi,0x10(%esp)
405b97:	8b 54 24 24          	mov    0x24(%esp),%edx
405b9b:	8b 4d 08             	mov    0x8(%ebp),%ecx
405b9e:	53                   	push   %ebx
405b9f:	e8 14 df ff ff       	call   0x403ab8
405ba4:	8b 44 24 20          	mov    0x20(%esp),%eax
405ba8:	2b f3                	sub    %ebx,%esi
405baa:	59                   	pop    %ecx
405bab:	8b 4c 24 20          	mov    0x20(%esp),%ecx
405baf:	1b 7c 24 10          	sbb    0x10(%esp),%edi
405bb3:	8b 00                	mov    (%eax),%eax
405bb5:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
405bb9:	29 18                	sub    %ebx,(%eax)
405bbb:	8b 41 1c             	mov    0x1c(%ecx),%eax
405bbe:	01 18                	add    %ebx,(%eax)
405bc0:	8b 44 24 10          	mov    0x10(%esp),%eax
405bc4:	eb 24                	jmp    0x405bea
405bc6:	8b 01                	mov    (%ecx),%eax
405bc8:	ff 50 1c             	call   *0x1c(%eax)
405bcb:	83 f8 ff             	cmp    $0xffffffff,%eax
405bce:	74 49                	je     0x405c19
405bd0:	8b 4d 08             	mov    0x8(%ebp),%ecx
405bd3:	83 c6 ff             	add    $0xffffffff,%esi
405bd6:	83 d7 ff             	adc    $0xffffffff,%edi
405bd9:	88 01                	mov    %al,(%ecx)
405bdb:	33 c9                	xor    %ecx,%ecx
405bdd:	41                   	inc    %ecx
405bde:	33 c0                	xor    %eax,%eax
405be0:	8b d9                	mov    %ecx,%ebx
405be2:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
405be6:	8b 4c 24 20          	mov    0x20(%esp),%ecx
405bea:	8b 54 24 14          	mov    0x14(%esp),%edx
405bee:	03 d3                	add    %ebx,%edx
405bf0:	8b 5c 24 18          	mov    0x18(%esp),%ebx
405bf4:	89 54 24 14          	mov    %edx,0x14(%esp)
405bf8:	13 d8                	adc    %eax,%ebx
405bfa:	8b 44 24 1c          	mov    0x1c(%esp),%eax
405bfe:	01 45 08             	add    %eax,0x8(%ebp)
405c01:	89 5c 24 18          	mov    %ebx,0x18(%esp)
405c05:	85 ff                	test   %edi,%edi
405c07:	0f 8f 44 ff ff ff    	jg     0x405b51
405c0d:	7c 12                	jl     0x405c21
405c0f:	85 f6                	test   %esi,%esi
405c11:	0f 85 3a ff ff ff    	jne    0x405b51
405c17:	eb 08                	jmp    0x405c21
405c19:	8b 54 24 14          	mov    0x14(%esp),%edx
405c1d:	8b 5c 24 18          	mov    0x18(%esp),%ebx
405c21:	5f                   	pop    %edi
405c22:	8b c2                	mov    %edx,%eax
405c24:	8b d3                	mov    %ebx,%edx
405c26:	5e                   	pop    %esi
405c27:	5b                   	pop    %ebx
405c28:	8b e5                	mov    %ebp,%esp
405c2a:	5d                   	pop    %ebp
405c2b:	c2 0c 00             	ret    $0xc
405c2e:	56                   	push   %esi
405c2f:	8b f1                	mov    %ecx,%esi
405c31:	8b 06                	mov    (%esi),%eax
405c33:	ff 50 18             	call   *0x18(%eax)
405c36:	83 c9 ff             	or     $0xffffffff,%ecx
405c39:	3b c1                	cmp    %ecx,%eax
405c3b:	74 12                	je     0x405c4f
405c3d:	8b 46 2c             	mov    0x2c(%esi),%eax
405c40:	ff 08                	decl   (%eax)
405c42:	8b 4e 1c             	mov    0x1c(%esi),%ecx
405c45:	8b 11                	mov    (%ecx),%edx
405c47:	8d 42 01             	lea    0x1(%edx),%eax
405c4a:	89 01                	mov    %eax,(%ecx)
405c4c:	0f b6 0a             	movzbl (%edx),%ecx
405c4f:	8b c1                	mov    %ecx,%eax
405c51:	5e                   	pop    %esi
405c52:	c3                   	ret
405c53:	83 c8 ff             	or     $0xffffffff,%eax
405c56:	c3                   	ret
405c57:	33 c0                	xor    %eax,%eax
405c59:	33 d2                	xor    %edx,%edx
405c5b:	c3                   	ret
405c5c:	83 c8 ff             	or     $0xffffffff,%eax
405c5f:	c2 04 00             	ret    $0x4
405c62:	56                   	push   %esi
405c63:	8b 71 34             	mov    0x34(%ecx),%esi
405c66:	c7 01 a4 96 43 00    	movl   $0x4396a4,(%ecx)
405c6c:	85 f6                	test   %esi,%esi
405c6e:	74 11                	je     0x405c81
405c70:	8b ce                	mov    %esi,%ecx
405c72:	e8 d3 df ff ff       	call   0x403c4a
405c77:	6a 08                	push   $0x8
405c79:	56                   	push   %esi
405c7a:	e8 71 0d 00 00       	call   0x4069f0
405c7f:	59                   	pop    %ecx
405c80:	59                   	pop    %ecx
405c81:	5e                   	pop    %esi
405c82:	c3                   	ret
405c83:	56                   	push   %esi
405c84:	8b f1                	mov    %ecx,%esi
405c86:	57                   	push   %edi
405c87:	8d 7e 90             	lea    -0x70(%esi),%edi
405c8a:	e8 61 f3 ff ff       	call   0x404ff0
405c8f:	56                   	push   %esi
405c90:	c7 06 10 97 43 00    	movl   $0x439710,(%esi)
405c96:	e8 5d 78 02 00       	call   0x42d4f8
405c9b:	f6 44 24 10 01       	testb  $0x1,0x10(%esp)
405ca0:	59                   	pop    %ecx
405ca1:	74 0d                	je     0x405cb0
405ca3:	68 b8 00 00 00       	push   $0xb8
405ca8:	57                   	push   %edi
405ca9:	e8 42 0d 00 00       	call   0x4069f0
405cae:	59                   	pop    %ecx
405caf:	59                   	pop    %ecx
405cb0:	8b c7                	mov    %edi,%eax
405cb2:	5f                   	pop    %edi
405cb3:	5e                   	pop    %esi
405cb4:	c2 04 00             	ret    $0x4
405cb7:	56                   	push   %esi
405cb8:	8b f1                	mov    %ecx,%esi
405cba:	e8 6c fb ff ff       	call   0x40582b
405cbf:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
405cc4:	74 0a                	je     0x405cd0
405cc6:	6a 58                	push   $0x58
405cc8:	56                   	push   %esi
405cc9:	e8 22 0d 00 00       	call   0x4069f0
405cce:	59                   	pop    %ecx
405ccf:	59                   	pop    %ecx
405cd0:	8b c6                	mov    %esi,%eax
405cd2:	5e                   	pop    %esi
405cd3:	c2 04 00             	ret    $0x4
405cd6:	8b d1                	mov    %ecx,%edx
405cd8:	56                   	push   %esi
405cd9:	52                   	push   %edx
405cda:	8d 72 e8             	lea    -0x18(%edx),%esi
405cdd:	8b 06                	mov    (%esi),%eax
405cdf:	8b 40 04             	mov    0x4(%eax),%eax
405ce2:	c7 44 10 e8 68 97 43 	movl   $0x439768,-0x18(%eax,%edx,1)
405ce9:	00
405cea:	8b 06                	mov    (%esi),%eax
405cec:	8b 48 04             	mov    0x4(%eax),%ecx
405cef:	8d 41 e8             	lea    -0x18(%ecx),%eax
405cf2:	89 44 11 e4          	mov    %eax,-0x1c(%ecx,%edx,1)
405cf6:	c7 02 10 97 43 00    	movl   $0x439710,(%edx)
405cfc:	e8 f7 77 02 00       	call   0x42d4f8
405d01:	f6 44 24 0c 01       	testb  $0x1,0xc(%esp)
405d06:	59                   	pop    %ecx
405d07:	74 0a                	je     0x405d13
405d09:	6a 60                	push   $0x60
405d0b:	56                   	push   %esi
405d0c:	e8 df 0c 00 00       	call   0x4069f0
405d11:	59                   	pop    %ecx
405d12:	59                   	pop    %ecx
405d13:	8b c6                	mov    %esi,%eax
405d15:	5e                   	pop    %esi
405d16:	c2 04 00             	ret    $0x4
405d19:	56                   	push   %esi
405d1a:	8b f1                	mov    %ecx,%esi
405d1c:	e8 41 ff ff ff       	call   0x405c62
405d21:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
405d26:	74 0a                	je     0x405d32
405d28:	6a 38                	push   $0x38
405d2a:	56                   	push   %esi
405d2b:	e8 c0 0c 00 00       	call   0x4069f0
405d30:	59                   	pop    %ecx
405d31:	59                   	pop    %ecx
405d32:	8b c6                	mov    %esi,%eax
405d34:	5e                   	pop    %esi
405d35:	c2 04 00             	ret    $0x4
405d38:	56                   	push   %esi
405d39:	8b f1                	mov    %ecx,%esi
405d3b:	56                   	push   %esi
405d3c:	c7 06 10 97 43 00    	movl   $0x439710,(%esi)
405d42:	e8 b1 77 02 00       	call   0x42d4f8
405d47:	f6 44 24 0c 01       	testb  $0x1,0xc(%esp)
405d4c:	59                   	pop    %ecx
405d4d:	74 0a                	je     0x405d59
405d4f:	6a 48                	push   $0x48
405d51:	56                   	push   %esi
405d52:	e8 99 0c 00 00       	call   0x4069f0
405d57:	59                   	pop    %ecx
405d58:	59                   	pop    %ecx
405d59:	8b c6                	mov    %esi,%eax
405d5b:	5e                   	pop    %esi
405d5c:	c2 04 00             	ret    $0x4
405d5f:	8b 44 24 0c          	mov    0xc(%esp),%eax
405d63:	2b 44 24 08          	sub    0x8(%esp),%eax
405d67:	39 44 24 10          	cmp    %eax,0x10(%esp)
405d6b:	0f 42 44 24 10       	cmovb  0x10(%esp),%eax
405d70:	c2 10 00             	ret    $0x10
405d73:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405d77:	8b 44 24 08          	mov    0x8(%esp),%eax
405d7b:	89 01                	mov    %eax,(%ecx)
405d7d:	33 c0                	xor    %eax,%eax
405d7f:	c2 10 00             	ret    $0x10
405d82:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405d86:	8b 44 24 08          	mov    0x8(%esp),%eax
405d8a:	6a 03                	push   $0x3
405d8c:	89 01                	mov    %eax,(%ecx)
405d8e:	8b 4c 24 20          	mov    0x20(%esp),%ecx
405d92:	8b 44 24 18          	mov    0x18(%esp),%eax
405d96:	89 01                	mov    %eax,(%ecx)
405d98:	58                   	pop    %eax
405d99:	c2 1c 00             	ret    $0x1c
405d9c:	b0 01                	mov    $0x1,%al
405d9e:	c3                   	ret
405d9f:	8b 54 24 04          	mov    0x4(%esp),%edx
405da3:	53                   	push   %ebx
405da4:	56                   	push   %esi
405da5:	57                   	push   %edi
405da6:	8b f9                	mov    %ecx,%edi
405da8:	89 17                	mov    %edx,(%edi)
405daa:	8b 02                	mov    (%edx),%eax
405dac:	8b 40 04             	mov    0x4(%eax),%eax
405daf:	8b 4c 10 38          	mov    0x38(%eax,%edx,1),%ecx
405db3:	85 c9                	test   %ecx,%ecx
405db5:	74 05                	je     0x405dbc
405db7:	8b 01                	mov    (%ecx),%eax
405db9:	ff 50 04             	call   *0x4(%eax)
405dbc:	8b 37                	mov    (%edi),%esi
405dbe:	33 db                	xor    %ebx,%ebx
405dc0:	8b 0e                	mov    (%esi),%ecx
405dc2:	8b 41 04             	mov    0x4(%ecx),%eax
405dc5:	39 5c 30 0c          	cmp    %ebx,0xc(%eax,%esi,1)
405dc9:	75 1c                	jne    0x405de7
405dcb:	8b 4c 30 3c          	mov    0x3c(%eax,%esi,1),%ecx
405dcf:	85 c9                	test   %ecx,%ecx
405dd1:	74 05                	je     0x405dd8
405dd3:	e8 3a 07 00 00       	call   0x406512
405dd8:	8b 0e                	mov    (%esi),%ecx