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
405dda:	8b 41 04             	mov    0x4(%ecx),%eax
405ddd:	39 5c 30 0c          	cmp    %ebx,0xc(%eax,%esi,1)
405de1:	75 04                	jne    0x405de7
405de3:	b3 01                	mov    $0x1,%bl
405de5:	eb 0d                	jmp    0x405df4
405de7:	51                   	push   %ecx
405de8:	8b 49 04             	mov    0x4(%ecx),%ecx
405deb:	6a 02                	push   $0x2
405ded:	03 ce                	add    %esi,%ecx
405def:	e8 c0 04 00 00       	call   0x4062b4
405df4:	88 5f 04             	mov    %bl,0x4(%edi)
405df7:	8b c7                	mov    %edi,%eax
405df9:	5f                   	pop    %edi
405dfa:	5e                   	pop    %esi
405dfb:	5b                   	pop    %ebx
405dfc:	c2 08 00             	ret    $0x8
405dff:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
405e04:	56                   	push   %esi
405e05:	57                   	push   %edi
405e06:	8b 7c 24 10          	mov    0x10(%esp),%edi
405e0a:	8b f1                	mov    %ecx,%esi
405e0c:	74 25                	je     0x405e33
405e0e:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405e12:	72 1f                	jb     0x405e33
405e14:	53                   	push   %ebx
405e15:	8b 1e                	mov    (%esi),%ebx
405e17:	85 ff                	test   %edi,%edi
405e19:	74 09                	je     0x405e24
405e1b:	57                   	push   %edi
405e1c:	8b d3                	mov    %ebx,%edx
405e1e:	e8 95 dc ff ff       	call   0x403ab8
405e23:	59                   	pop    %ecx
405e24:	8b 56 14             	mov    0x14(%esi),%edx
405e27:	8b cb                	mov    %ebx,%ecx
405e29:	6a 01                	push   $0x1
405e2b:	42                   	inc    %edx
405e2c:	e8 ad b3 ff ff       	call   0x4011de
405e31:	59                   	pop    %ecx
405e32:	5b                   	pop    %ebx
405e33:	89 7e 10             	mov    %edi,0x10(%esi)
405e36:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
405e3d:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
405e41:	5f                   	pop    %edi
405e42:	5e                   	pop    %esi
405e43:	c2 08 00             	ret    $0x8
405e46:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
405e4b:	74 2c                	je     0x405e79
405e4d:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
405e51:	72 04                	jb     0x405e57
405e53:	8b 01                	mov    (%ecx),%eax
405e55:	eb 02                	jmp    0x405e59
405e57:	8b c1                	mov    %ecx,%eax
405e59:	39 44 24 04          	cmp    %eax,0x4(%esp)
405e5d:	72 1a                	jb     0x405e79
405e5f:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
405e63:	72 04                	jb     0x405e69
405e65:	8b 11                	mov    (%ecx),%edx
405e67:	eb 02                	jmp    0x405e6b
405e69:	8b d1                	mov    %ecx,%edx
405e6b:	8b 41 10             	mov    0x10(%ecx),%eax
405e6e:	03 c2                	add    %edx,%eax
405e70:	3b 44 24 04          	cmp    0x4(%esp),%eax
405e74:	0f 97 c0             	seta   %al
405e77:	eb 02                	jmp    0x405e7b
405e79:	32 c0                	xor    %al,%al
405e7b:	c2 04 00             	ret    $0x4
405e7e:	56                   	push   %esi
405e7f:	8b 74 24 08          	mov    0x8(%esp),%esi
405e83:	83 fe fe             	cmp    $0xfffffffe,%esi
405e86:	77 49                	ja     0x405ed1
405e88:	39 71 14             	cmp    %esi,0x14(%ecx)
405e8b:	73 0b                	jae    0x405e98
405e8d:	ff 71 10             	push   0x10(%ecx)
405e90:	56                   	push   %esi
405e91:	e8 88 04 00 00       	call   0x40631e
405e96:	eb 30                	jmp    0x405ec8
405e98:	80 7c 24 0c 00       	cmpb   $0x0,0xc(%esp)
405e9d:	74 17                	je     0x405eb6
405e9f:	83 fe 10             	cmp    $0x10,%esi
405ea2:	73 12                	jae    0x405eb6
405ea4:	8b 41 10             	mov    0x10(%ecx),%eax
405ea7:	3b f0                	cmp    %eax,%esi
405ea9:	0f 42 c6             	cmovb  %esi,%eax
405eac:	50                   	push   %eax
405ead:	6a 01                	push   $0x1
405eaf:	e8 4b ff ff ff       	call   0x405dff
405eb4:	eb 12                	jmp    0x405ec8
405eb6:	85 f6                	test   %esi,%esi
405eb8:	75 10                	jne    0x405eca
405eba:	21 71 10             	and    %esi,0x10(%ecx)
405ebd:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
405ec1:	72 02                	jb     0x405ec5
405ec3:	8b 09                	mov    (%ecx),%ecx
405ec5:	c6 01 00             	movb   $0x0,(%ecx)
405ec8:	85 f6                	test   %esi,%esi
405eca:	0f 95 c0             	setne  %al
405ecd:	5e                   	pop    %esi
405ece:	c2 08 00             	ret    $0x8
405ed1:	e8 2d c4 ff ff       	call   0x402303
405ed6:	cc                   	int3
405ed7:	8b 44 24 08          	mov    0x8(%esp),%eax
405edb:	56                   	push   %esi
405edc:	8b f1                	mov    %ecx,%esi
405ede:	57                   	push   %edi
405edf:	8b 7e 10             	mov    0x10(%esi),%edi
405ee2:	3b f8                	cmp    %eax,%edi
405ee4:	77 15                	ja     0x405efb
405ee6:	83 66 10 00          	andl   $0x0,0x10(%esi)
405eea:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405eee:	72 04                	jb     0x405ef4
405ef0:	8b 06                	mov    (%esi),%eax
405ef2:	eb 02                	jmp    0x405ef6
405ef4:	8b c6                	mov    %esi,%eax
405ef6:	c6 00 00             	movb   $0x0,(%eax)
405ef9:	eb 30                	jmp    0x405f2b
405efb:	85 c0                	test   %eax,%eax
405efd:	74 2c                	je     0x405f2b
405eff:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405f03:	72 02                	jb     0x405f07
405f05:	8b 0e                	mov    (%esi),%ecx
405f07:	2b f8                	sub    %eax,%edi
405f09:	74 0d                	je     0x405f18
405f0b:	57                   	push   %edi
405f0c:	03 c1                	add    %ecx,%eax
405f0e:	50                   	push   %eax
405f0f:	51                   	push   %ecx
405f10:	e8 2b 4f 00 00       	call   0x40ae40
405f15:	83 c4 0c             	add    $0xc,%esp
405f18:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405f1c:	89 7e 10             	mov    %edi,0x10(%esi)
405f1f:	72 04                	jb     0x405f25
405f21:	8b 06                	mov    (%esi),%eax
405f23:	eb 02                	jmp    0x405f27
405f25:	8b c6                	mov    %esi,%eax
405f27:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
405f2b:	5f                   	pop    %edi
405f2c:	8b c6                	mov    %esi,%eax
405f2e:	5e                   	pop    %esi
405f2f:	c2 08 00             	ret    $0x8
405f32:	53                   	push   %ebx
405f33:	8b 5c 24 08          	mov    0x8(%esp),%ebx
405f37:	55                   	push   %ebp
405f38:	8b 6c 24 10          	mov    0x10(%esp),%ebp
405f3c:	56                   	push   %esi
405f3d:	57                   	push   %edi
405f3e:	8b 7b 10             	mov    0x10(%ebx),%edi
405f41:	8b f1                	mov    %ecx,%esi
405f43:	3b fd                	cmp    %ebp,%edi
405f45:	72 69                	jb     0x405fb0
405f47:	2b fd                	sub    %ebp,%edi
405f49:	39 7c 24 1c          	cmp    %edi,0x1c(%esp)
405f4d:	0f 42 7c 24 1c       	cmovb  0x1c(%esp),%edi
405f52:	3b f3                	cmp    %ebx,%esi
405f54:	75 14                	jne    0x405f6a
405f56:	8d 04 2f             	lea    (%edi,%ebp,1),%eax
405f59:	50                   	push   %eax
405f5a:	e8 aa 04 00 00       	call   0x406409
405f5f:	55                   	push   %ebp
405f60:	51                   	push   %ecx
405f61:	8b ce                	mov    %esi,%ecx
405f63:	e8 6f ff ff ff       	call   0x405ed7
405f68:	eb 3d                	jmp    0x405fa7
405f6a:	6a 00                	push   $0x0
405f6c:	57                   	push   %edi
405f6d:	e8 0c ff ff ff       	call   0x405e7e
405f72:	84 c0                	test   %al,%al
405f74:	74 31                	je     0x405fa7
405f76:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
405f7a:	72 02                	jb     0x405f7e
405f7c:	8b 1b                	mov    (%ebx),%ebx
405f7e:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
405f82:	72 04                	jb     0x405f88
405f84:	8b 0e                	mov    (%esi),%ecx
405f86:	eb 02                	jmp    0x405f8a
405f88:	8b ce                	mov    %esi,%ecx