405acf:	b9 89 13 00 00       	mov    $0x1389,%ecx
405ad4:	e8 78 3f 00 00       	call   0x409a51
405ad9:	50                   	push   %eax
405ada:	68 9c 16 40 00       	push   $0x40169c
405adf:	53                   	push   %ebx
405ae0:	6a 02                	push   $0x2
405ae2:	6a 02                	push   $0x2
405ae4:	e8 f0 97 00 00       	call   0x40f2d9
405ae9:	59                   	pop    %ecx
405aea:	50                   	push   %eax
405aeb:	e8 54 4c 00 00       	call   0x40a744
405af0:	83 c4 18             	add    $0x18,%esp
405af3:	e8 1d 3e 00 00       	call   0x409915
405af8:	a1 a0 13 41 00       	mov    0x4113a0,%eax
405afd:	85 c0                	test   %eax,%eax
405aff:	74 3c                	je     0x405b3d
405b01:	50                   	push   %eax
405b02:	ff 15 dc 20 41 00    	call   *0x4120dc
405b08:	eb 33                	jmp    0x405b3d
405b0a:	b9 f7 01 00 00       	mov    $0x1f7,%ecx
405b0f:	e8 3d 3f 00 00       	call   0x409a51
405b14:	57                   	push   %edi
405b15:	8b f0                	mov    %eax,%esi
405b17:	e8 bd 97 00 00       	call   0x40f2d9
405b1c:	59                   	pop    %ecx
405b1d:	8b d6                	mov    %esi,%edx
405b1f:	8b c8                	mov    %eax,%ecx
405b21:	e8 c7 49 00 00       	call   0x40a4ed
405b26:	e8 ea 3d 00 00       	call   0x409915
405b2b:	a1 a0 13 41 00       	mov    0x4113a0,%eax
405b30:	85 c0                	test   %eax,%eax
405b32:	74 07                	je     0x405b3b
405b34:	50                   	push   %eax
405b35:	ff 15 dc 20 41 00    	call   *0x4120dc
405b3b:	8b fb                	mov    %ebx,%edi
405b3d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405b41:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405b47:	e8 3d c4 ff ff       	call   0x401f89
405b4c:	8b c7                	mov    %edi,%eax
405b4e:	e8 a6 97 00 00       	call   0x40f2f9
405b53:	c3                   	ret
405b54:	6a 08                	push   $0x8
405b56:	b8 b0 f8 40 00       	mov    $0x40f8b0,%eax
405b5b:	e8 ef 97 00 00       	call   0x40f34f
405b60:	8b f9                	mov    %ecx,%edi
405b62:	83 a7 b0 00 00 00 00 	andl   $0x0,0xb0(%edi)
405b69:	8d 77 0c             	lea    0xc(%edi),%esi
405b6c:	8b ce                	mov    %esi,%ecx
405b6e:	e8 40 1d 00 00       	call   0x4078b3
405b73:	8d 5f 28             	lea    0x28(%edi),%ebx
405b76:	8d 87 d8 00 00 00    	lea    0xd8(%edi),%eax
405b7c:	8d 4f 04             	lea    0x4(%edi),%ecx
405b7f:	51                   	push   %ecx
405b80:	51                   	push   %ecx
405b81:	50                   	push   %eax
405b82:	51                   	push   %ecx
405b83:	ff 77 38             	push   0x38(%edi)
405b86:	56                   	push   %esi
405b87:	8d 47 30             	lea    0x30(%edi),%eax
405b8a:	50                   	push   %eax
405b8b:	8d 47 2c             	lea    0x2c(%edi),%eax
405b8e:	50                   	push   %eax
405b8f:	ff 33                	push   (%ebx)
405b91:	8b d1                	mov    %ecx,%edx
405b93:	8b 0f                	mov    (%edi),%ecx
405b95:	e8 b6 15 00 00       	call   0x407150
405b9a:	8b f0                	mov    %eax,%esi
405b9c:	ff 15 48 20 41 00    	call   *0x412048
405ba2:	89 45 ec             	mov    %eax,-0x14(%ebp)
405ba5:	85 f6                	test   %esi,%esi
405ba7:	0f 84 f9 00 00 00    	je     0x405ca6
405bad:	8d b7 d8 00 00 00    	lea    0xd8(%edi),%esi
405bb3:	83 3e 01             	cmpl   $0x1,(%esi)
405bb6:	75 23                	jne    0x405bdb
405bb8:	83 7f 40 01          	cmpl   $0x1,0x40(%edi)
405bbc:	75 1d                	jne    0x405bdb
405bbe:	8b 57 0c             	mov    0xc(%edi),%edx
405bc1:	8b 4f 04             	mov    0x4(%edi),%ecx
405bc4:	e8 ee 25 00 00       	call   0x4081b7
405bc9:	83 f8 01             	cmp    $0x1,%eax
405bcc:	8b 45 ec             	mov    -0x14(%ebp),%eax
405bcf:	74 0a                	je     0x405bdb
405bd1:	c7 87 b0 00 00 00 01 	movl   $0x1,0xb0(%edi)
405bd8:	00 00 00
405bdb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405bdf:	b9 64 10 04 80       	mov    $0x80041064,%ecx
405be4:	3b c1                	cmp    %ecx,%eax
405be6:	75 30                	jne    0x405c18
405be8:	e8 1d 1d 00 00       	call   0x40790a
405bed:	e8 fa 3a 00 00       	call   0x4096ec
405bf2:	50                   	push   %eax
405bf3:	b9 8a 13 00 00       	mov    $0x138a,%ecx
405bf8:	e8 54 3e 00 00       	call   0x409a51
405bfd:	50                   	push   %eax
405bfe:	68 9c 16 40 00       	push   $0x40169c
405c03:	6a 00                	push   $0x0
405c05:	6a 02                	push   $0x2
405c07:	6a 02                	push   $0x2
405c09:	e8 cb 96 00 00       	call   0x40f2d9
405c0e:	59                   	pop    %ecx
405c0f:	50                   	push   %eax
405c10:	e8 2f 4b 00 00       	call   0x40a744
405c15:	83 c4 18             	add    $0x18,%esp
405c18:	83 3e 00             	cmpl   $0x0,(%esi)
405c1b:	75 25                	jne    0x405c42
405c1d:	8b 57 0c             	mov    0xc(%edi),%edx
405c20:	8b 4f 04             	mov    0x4(%edi),%ecx
405c23:	e8 0b 22 00 00       	call   0x407e33
405c28:	3d 88 13 00 00       	cmp    $0x1388,%eax
405c2d:	73 13                	jae    0x405c42
405c2f:	b9 80 15 00 00       	mov    $0x1580,%ecx
405c34:	e8 18 3e 00 00       	call   0x409a51
405c39:	8b c8                	mov    %eax,%ecx
405c3b:	e8 cc 3a 00 00       	call   0x40970c
405c40:	eb 64                	jmp    0x405ca6
405c42:	81 c7 8c 00 00 00    	add    $0x8c,%edi
405c48:	68 98 16 40 00       	push   $0x401698
405c4d:	8b cf                	mov    %edi,%ecx
405c4f:	ff 15 2c 22 41 00    	call   *0x41222c
405c55:	8b cb                	mov    %ebx,%ecx
405c57:	ff 15 38 22 41 00    	call   *0x412238
405c5d:	8b 40 04             	mov    0x4(%eax),%eax
405c60:	85 c0                	test   %eax,%eax
405c62:	74 25                	je     0x405c89
405c64:	53                   	push   %ebx
405c65:	8b cf                	mov    %edi,%ecx
405c67:	ff 15 24 22 41 00    	call   *0x412224
405c6d:	8b 0b                	mov    (%ebx),%ecx
405c6f:	e8 2c 53 00 00       	call   0x40afa0
405c74:	85 c0                	test   %eax,%eax
405c76:	75 11                	jne    0x405c89
405c78:	ff 33                	push   (%ebx)
405c7a:	68 c0 16 40 00       	push   $0x4016c0
405c7f:	57                   	push   %edi
405c80:	ff 15 04 22 41 00    	call   *0x412204
405c86:	83 c4 0c             	add    $0xc,%esp
405c89:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405c8d:	33 c0                	xor    %eax,%eax
405c8f:	40                   	inc    %eax
405c90:	eb 16                	jmp    0x405ca8
405c92:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
405c97:	e8 6e 1c 00 00       	call   0x40790a
405c9c:	b8 a2 5c 40 00       	mov    $0x405ca2,%eax
405ca1:	c3                   	ret
405ca2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405ca6:	33 c0                	xor    %eax,%eax
405ca8:	e8 4c 96 00 00       	call   0x40f2f9
405cad:	c3                   	ret
405cae:	6a 1c                	push   $0x1c
405cb0:	b8 db f8 40 00       	mov    $0x40f8db,%eax
405cb5:	e8 95 96 00 00       	call   0x40f34f
405cba:	8b f9                	mov    %ecx,%edi
405cbc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405cc0:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
405cc4:	75 15                	jne    0x405cdb
405cc6:	68 fd 00 03 80       	push   $0x800300fd
405ccb:	ff 15 74 20 41 00    	call   *0x412074
405cd1:	e8 1e 3b 00 00       	call   0x4097f4
405cd6:	e9 94 01 00 00       	jmp    0x405e6f
405cdb:	8d 5f 08             	lea    0x8(%edi),%ebx
405cde:	8b 0b                	mov    (%ebx),%ecx
405ce0:	85 c9                	test   %ecx,%ecx
405ce2:	74 13                	je     0x405cf7
405ce4:	8b 01                	mov    (%ecx),%eax
405ce6:	51                   	push   %ecx
405ce7:	8b 70 08             	mov    0x8(%eax),%esi
405cea:	8b ce                	mov    %esi,%ecx
405cec:	ff 15 20 23 41 00    	call   *0x412320
405cf2:	ff d6                	call   *%esi
405cf4:	83 23 00             	andl   $0x0,(%ebx)
405cf7:	ff 77 60             	push   0x60(%edi)
405cfa:	8d 4d e8             	lea    -0x18(%ebp),%ecx
405cfd:	e8 d7 fc ff ff       	call   0x4059d9
405d02:	8b f0                	mov    %eax,%esi
405d04:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405d08:	68 e0 15 40 00       	push   $0x4015e0
405d0d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405d10:	e8 c4 fc ff ff       	call   0x4059d9
405d15:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
405d19:	8b 16                	mov    (%esi),%edx
405d1b:	85 d2                	test   %edx,%edx
405d1d:	74 04                	je     0x405d23
405d1f:	8b 12                	mov    (%edx),%edx
405d21:	eb 02                	jmp    0x405d25
405d23:	33 d2                	xor    %edx,%edx
405d25:	8b 00                	mov    (%eax),%eax
405d27:	85 c0                	test   %eax,%eax
405d29:	74 04                	je     0x405d2f
405d2b:	8b 08                	mov    (%eax),%ecx
405d2d:	eb 02                	jmp    0x405d31
405d2f:	33 c9                	xor    %ecx,%ecx
405d31:	8b 47 04             	mov    0x4(%edi),%eax
405d34:	8b 30                	mov    (%eax),%esi
405d36:	53                   	push   %ebx
405d37:	6a 00                	push   $0x0
405d39:	6a 30                	push   $0x30
405d3b:	52                   	push   %edx
405d3c:	51                   	push   %ecx
405d3d:	50                   	push   %eax
405d3e:	8b 4e 50             	mov    0x50(%esi),%ecx
405d41:	ff 15 20 23 41 00    	call   *0x412320
405d47:	ff 56 50             	call   *0x50(%esi)
405d4a:	8b f0                	mov    %eax,%esi
405d4c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405d50:	8d 4d ec             	lea    -0x14(%ebp),%ecx
405d53:	e8 f7 fb ff ff       	call   0x40594f
405d58:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
405d5c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
405d5f:	e8 eb fb ff ff       	call   0x40594f
405d64:	85 f6                	test   %esi,%esi
405d66:	79 0c                	jns    0x405d74
405d68:	8b ce                	mov    %esi,%ecx
405d6a:	e8 9b 1b 00 00       	call   0x40790a
405d6f:	e9 fb 00 00 00       	jmp    0x405e6f
405d74:	8b 57 0c             	mov    0xc(%edi),%edx
405d77:	8b 0b                	mov    (%ebx),%ecx
405d79:	e8 4b 18 00 00       	call   0x4075c9
405d7e:	85 c0                	test   %eax,%eax
405d80:	79 04                	jns    0x405d86
405d82:	8b c8                	mov    %eax,%ecx
405d84:	eb e4                	jmp    0x405d6a
405d86:	8b 4f 58             	mov    0x58(%edi),%ecx
405d89:	e8 0b 2d 00 00       	call   0x408a99
405d8e:	33 db                	xor    %ebx,%ebx
405d90:	89 5f 3c             	mov    %ebx,0x3c(%edi)
405d93:	8b 87 d8 00 00 00    	mov    0xd8(%edi),%eax
405d99:	83 f8 01             	cmp    $0x1,%eax
405d9c:	75 57                	jne    0x405df5
405d9e:	39 47 4c             	cmp    %eax,0x4c(%edi)
405da1:	75 42                	jne    0x405de5
405da3:	89 5d d8             	mov    %ebx,-0x28(%ebp)
405da6:	89 5d dc             	mov    %ebx,-0x24(%ebp)
405da9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
405dac:	8b 47 58             	mov    0x58(%edi),%eax
405daf:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405db2:	8d 45 d8             	lea    -0x28(%ebp),%eax
405db5:	50                   	push   %eax
405db6:	68 40 65 40 00       	push   $0x406540
405dbb:	ff 15 88 21 41 00    	call   *0x412188
405dc1:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
405dc4:	74 0d                	je     0x405dd3
405dc6:	ff 75 d8             	push   -0x28(%ebp)
405dc9:	ff 15 c8 22 41 00    	call   *0x4122c8
405dcf:	59                   	pop    %ecx
405dd0:	89 5d d8             	mov    %ebx,-0x28(%ebp)
405dd3:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
405dd6:	74 0d                	je     0x405de5
405dd8:	ff 75 dc             	push   -0x24(%ebp)
405ddb:	ff 15 c8 22 41 00    	call   *0x4122c8
405de1:	59                   	pop    %ecx
405de2:	89 5d dc             	mov    %ebx,-0x24(%ebp)
405de5:	8b cf                	mov    %edi,%ecx
405de7:	e8 8b 00 00 00       	call   0x405e77
405dec:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405df0:	33 c0                	xor    %eax,%eax
405df2:	40                   	inc    %eax
405df3:	eb 7c                	jmp    0x405e71
405df5:	85 c0                	test   %eax,%eax
405df7:	75 ec                	jne    0x405de5
405df9:	33 db                	xor    %ebx,%ebx
405dfb:	43                   	inc    %ebx
405dfc:	39 5f 4c             	cmp    %ebx,0x4c(%edi)
405dff:	75 e4                	jne    0x405de5
405e01:	be d2 00 00 00       	mov    $0xd2,%esi
405e06:	51                   	push   %ecx
405e07:	51                   	push   %ecx
405e08:	8b ce                	mov    %esi,%ecx
405e0a:	e8 42 3c 00 00       	call   0x409a51
405e0f:	50                   	push   %eax
405e10:	8b d3                	mov    %ebx,%edx
405e12:	8b 4f 54             	mov    0x54(%edi),%ecx
405e15:	e8 71 35 00 00       	call   0x40938b
405e1a:	83 f8 ff             	cmp    $0xffffffff,%eax
405e1d:	74 0f                	je     0x405e2e
405e1f:	89 5f 3c             	mov    %ebx,0x3c(%edi)
405e22:	8b d0                	mov    %eax,%edx
405e24:	8b 4f 54             	mov    0x54(%edi),%ecx
405e27:	e8 3c 2f 00 00       	call   0x408d68
405e2c:	eb d8                	jmp    0x405e06
405e2e:	be ca 00 00 00       	mov    $0xca,%esi
405e33:	51                   	push   %ecx
405e34:	51                   	push   %ecx
405e35:	8b ce                	mov    %esi,%ecx
405e37:	e8 15 3c 00 00       	call   0x409a51
405e3c:	50                   	push   %eax
405e3d:	8b d3                	mov    %ebx,%edx
405e3f:	8b 4f 54             	mov    0x54(%edi),%ecx
405e42:	e8 44 35 00 00       	call   0x40938b
405e47:	83 f8 ff             	cmp    $0xffffffff,%eax
405e4a:	74 99                	je     0x405de5
405e4c:	89 5f 3c             	mov    %ebx,0x3c(%edi)
405e4f:	8b d0                	mov    %eax,%edx
405e51:	8b 4f 54             	mov    0x54(%edi),%ecx
405e54:	e8 0f 2f 00 00       	call   0x408d68
405e59:	eb d8                	jmp    0x405e33
405e5b:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
405e60:	e8 a5 1a 00 00       	call   0x40790a
405e65:	b8 6b 5e 40 00       	mov    $0x405e6b,%eax
405e6a:	c3                   	ret
405e6b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405e6f:	33 c0                	xor    %eax,%eax
405e71:	e8 83 94 00 00       	call   0x40f2f9
405e76:	c3                   	ret
405e77:	6a 10                	push   $0x10
405e79:	b8 f6 f8 40 00       	mov    $0x40f8f6,%eax
405e7e:	e8 cc 94 00 00       	call   0x40f34f
405e83:	8b f9                	mov    %ecx,%edi
405e85:	33 db                	xor    %ebx,%ebx
405e87:	89 9f 90 00 00 00    	mov    %ebx,0x90(%edi)
405e8d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405e90:	39 9f d8 00 00 00    	cmp    %ebx,0xd8(%edi)
405e96:	75 6f                	jne    0x405f07
405e98:	8b 4f 0c             	mov    0xc(%edi),%ecx
405e9b:	85 c9                	test   %ecx,%ecx
405e9d:	74 68                	je     0x405f07
405e9f:	8b c3                	mov    %ebx,%eax
405ea1:	89 45 e8             	mov    %eax,-0x18(%ebp)
405ea4:	8b 41 10             	mov    0x10(%ecx),%eax
405ea7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405eaa:	8d 4f 2c             	lea    0x2c(%edi),%ecx
405ead:	ff 15 38 22 41 00    	call   *0x412238
405eb3:	8b 40 04             	mov    0x4(%eax),%eax
405eb6:	85 c0                	test   %eax,%eax
405eb8:	74 08                	je     0x405ec2
405eba:	8b 47 2c             	mov    0x2c(%edi),%eax
405ebd:	89 45 e8             	mov    %eax,-0x18(%ebp)
405ec0:	eb 02                	jmp    0x405ec4
405ec2:	8b c3                	mov    %ebx,%eax
405ec4:	33 f6                	xor    %esi,%esi
405ec6:	46                   	inc    %esi
405ec7:	89 b7 90 00 00 00    	mov    %esi,0x90(%edi)
405ecd:	51                   	push   %ecx
405ece:	ff 75 e4             	push   -0x1c(%ebp)
405ed1:	8b d0                	mov    %eax,%edx
405ed3:	8b 8f 8c 00 00 00    	mov    0x8c(%edi),%ecx
405ed9:	e8 10 56 00 00       	call   0x40b4ee
405ede:	85 c0                	test   %eax,%eax
405ee0:	74 11                	je     0x405ef3
405ee2:	89 9f 90 00 00 00    	mov    %ebx,0x90(%edi)
405ee8:	3d c3 04 00 00       	cmp    $0x4c3,%eax
405eed:	0f 85 65 01 00 00    	jne    0x406058
405ef3:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
405ef7:	74 06                	je     0x405eff
405ef9:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
405efd:	75 0b                	jne    0x405f0a
405eff:	89 9f 90 00 00 00    	mov    %ebx,0x90(%edi)
405f05:	eb 03                	jmp    0x405f0a
405f07:	33 f6                	xor    %esi,%esi
405f09:	46                   	inc    %esi
405f0a:	8b ce                	mov    %esi,%ecx