402b48:	8b c8                	mov    %eax,%ecx
402b4a:	e8 d1 1d 00 00       	call   0x404920
402b4f:	8b c7                	mov    %edi,%eax
402b51:	5f                   	pop    %edi
402b52:	5e                   	pop    %esi
402b53:	8b e5                	mov    %ebp,%esp
402b55:	5d                   	pop    %ebp
402b56:	c2 10 00             	ret    $0x10
402b59:	e8 e3 49 00 00       	call   0x407541
402b5e:	cc                   	int3
402b5f:	cc                   	int3
402b60:	55                   	push   %ebp
402b61:	8b ec                	mov    %esp,%ebp
402b63:	6a ff                	push   $0xffffffff
402b65:	68 d5 2a 42 00       	push   $0x422ad5
402b6a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402b70:	50                   	push   %eax
402b71:	83 ec 30             	sub    $0x30,%esp
402b74:	53                   	push   %ebx
402b75:	56                   	push   %esi
402b76:	57                   	push   %edi
402b77:	a1 14 30 43 00       	mov    0x433014,%eax
402b7c:	33 c5                	xor    %ebp,%eax
402b7e:	50                   	push   %eax
402b7f:	8d 45 f4             	lea    -0xc(%ebp),%eax
402b82:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402b88:	89 65 f0             	mov    %esp,-0x10(%ebp)
402b8b:	8b f1                	mov    %ecx,%esi
402b8d:	89 75 e8             	mov    %esi,-0x18(%ebp)
402b90:	33 ff                	xor    %edi,%edi
402b92:	8d 4d d0             	lea    -0x30(%ebp),%ecx
402b95:	56                   	push   %esi
402b96:	89 7d d8             	mov    %edi,-0x28(%ebp)
402b99:	e8 d2 0a 00 00       	call   0x403670
402b9e:	89 7d fc             	mov    %edi,-0x4(%ebp)
402ba1:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)
402ba5:	0f 84 ab 00 00 00    	je     0x402c56
402bab:	8b 06                	mov    (%esi),%eax
402bad:	8b 40 04             	mov    0x4(%eax),%eax
402bb0:	8b 44 30 30          	mov    0x30(%eax,%esi,1),%eax
402bb4:	8b 58 04             	mov    0x4(%eax),%ebx
402bb7:	8b cb                	mov    %ebx,%ecx
402bb9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
402bbc:	8b 03                	mov    (%ebx),%eax
402bbe:	ff 50 04             	call   *0x4(%eax)
402bc1:	8d 45 dc             	lea    -0x24(%ebp),%eax
402bc4:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
402bc8:	50                   	push   %eax
402bc9:	e8 a2 1f 00 00       	call   0x404b70
402bce:	83 c4 04             	add    $0x4,%esp
402bd1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
402bd4:	85 db                	test   %ebx,%ebx
402bd6:	74 13                	je     0x402beb
402bd8:	8b 13                	mov    (%ebx),%edx
402bda:	8b cb                	mov    %ebx,%ecx
402bdc:	ff 52 08             	call   *0x8(%edx)
402bdf:	85 c0                	test   %eax,%eax
402be1:	74 08                	je     0x402beb
402be3:	8b 10                	mov    (%eax),%edx
402be5:	8b c8                	mov    %eax,%ecx
402be7:	6a 01                	push   $0x1
402be9:	ff 12                	call   *(%edx)
402beb:	ff 75 08             	push   0x8(%ebp)
402bee:	8b 55 e4             	mov    -0x1c(%ebp),%edx
402bf1:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
402bf5:	8b 06                	mov    (%esi),%eax
402bf7:	8b 48 04             	mov    0x4(%eax),%ecx
402bfa:	03 ce                	add    %esi,%ecx
402bfc:	c6 45 c8 00          	movb   $0x0,-0x38(%ebp)
402c00:	8a 41 40             	mov    0x40(%ecx),%al
402c03:	88 45 e0             	mov    %al,-0x20(%ebp)
402c06:	ff 75 e0             	push   -0x20(%ebp)
402c09:	8b 02                	mov    (%edx),%eax
402c0b:	51                   	push   %ecx
402c0c:	ff 71 38             	push   0x38(%ecx)
402c0f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
402c12:	ff 75 c8             	push   -0x38(%ebp)
402c15:	51                   	push   %ecx
402c16:	8b ca                	mov    %edx,%ecx
402c18:	ff 50 20             	call   *0x20(%eax)
402c1b:	80 7d c8 00          	cmpb   $0x0,-0x38(%ebp)
402c1f:	ba 04 00 00 00       	mov    $0x4,%edx
402c24:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402c2b:	0f 45 fa             	cmovne %edx,%edi
402c2e:	eb 2b                	jmp    0x402c5b
402c30:	8b 55 e8             	mov    -0x18(%ebp),%edx
402c33:	6a 01                	push   $0x1
402c35:	6a 04                	push   $0x4
402c37:	8b 02                	mov    (%edx),%eax
402c39:	8b 48 04             	mov    0x4(%eax),%ecx
402c3c:	03 ca                	add    %edx,%ecx
402c3e:	e8 4d 0b 00 00       	call   0x403790
402c43:	b8 49 2c 40 00       	mov    $0x402c49,%eax
402c48:	c3                   	ret
402c49:	8b 75 e8             	mov    -0x18(%ebp),%esi
402c4c:	8b 7d d8             	mov    -0x28(%ebp),%edi
402c4f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402c56:	ba 04 00 00 00       	mov    $0x4,%edx
402c5b:	8b 06                	mov    (%esi),%eax
402c5d:	6a 00                	push   $0x0
402c5f:	8b 48 04             	mov    0x4(%eax),%ecx
402c62:	8b 44 31 0c          	mov    0xc(%ecx,%esi,1),%eax
402c66:	03 ce                	add    %esi,%ecx
402c68:	0b c7                	or     %edi,%eax
402c6a:	33 ff                	xor    %edi,%edi
402c6c:	39 79 38             	cmp    %edi,0x38(%ecx)
402c6f:	0f 45 d7             	cmovne %edi,%edx
402c72:	0b d0                	or     %eax,%edx
402c74:	52                   	push   %edx
402c75:	e8 26 f2 ff ff       	call   0x401ea0
402c7a:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
402c81:	e8 69 40 00 00       	call   0x406cef
402c86:	84 c0                	test   %al,%al
402c88:	75 08                	jne    0x402c92
402c8a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
402c8d:	e8 7e 18 00 00       	call   0x404510
402c92:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
402c96:	8b 4d d0             	mov    -0x30(%ebp),%ecx
402c99:	8b 01                	mov    (%ecx),%eax
402c9b:	8b 40 04             	mov    0x4(%eax),%eax
402c9e:	8b 4c 08 38          	mov    0x38(%eax,%ecx,1),%ecx
402ca2:	85 c9                	test   %ecx,%ecx
402ca4:	74 05                	je     0x402cab
402ca6:	8b 01                	mov    (%ecx),%eax
402ca8:	ff 50 08             	call   *0x8(%eax)
402cab:	8b c6                	mov    %esi,%eax
402cad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402cb0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402cb7:	59                   	pop    %ecx
402cb8:	5f                   	pop    %edi
402cb9:	5e                   	pop    %esi
402cba:	5b                   	pop    %ebx
402cbb:	8b e5                	mov    %ebp,%esp
402cbd:	5d                   	pop    %ebp
402cbe:	c2 04 00             	ret    $0x4
402cc1:	cc                   	int3
402cc2:	cc                   	int3
402cc3:	cc                   	int3
402cc4:	cc                   	int3
402cc5:	cc                   	int3
402cc6:	cc                   	int3
402cc7:	cc                   	int3
402cc8:	cc                   	int3
402cc9:	cc                   	int3
402cca:	cc                   	int3
402ccb:	cc                   	int3
402ccc:	cc                   	int3
402ccd:	cc                   	int3
402cce:	cc                   	int3
402ccf:	cc                   	int3
402cd0:	56                   	push   %esi
402cd1:	8b f1                	mov    %ecx,%esi
402cd3:	8b 06                	mov    (%esi),%eax
402cd5:	85 c0                	test   %eax,%eax
402cd7:	74 09                	je     0x402ce2
402cd9:	50                   	push   %eax
402cda:	e8 34 9f 00 00       	call   0x40cc13
402cdf:	83 c4 04             	add    $0x4,%esp
402ce2:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
402ce8:	5e                   	pop    %esi
402ce9:	c3                   	ret
402cea:	cc                   	int3
402ceb:	cc                   	int3
402cec:	cc                   	int3
402ced:	cc                   	int3
402cee:	cc                   	int3
402cef:	cc                   	int3
402cf0:	56                   	push   %esi
402cf1:	8b f1                	mov    %ecx,%esi
402cf3:	8b 4e 14             	mov    0x14(%esi),%ecx
402cf6:	83 f9 10             	cmp    $0x10,%ecx
402cf9:	72 27                	jb     0x402d22
402cfb:	8b 06                	mov    (%esi),%eax
402cfd:	41                   	inc    %ecx
402cfe:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402d04:	72 12                	jb     0x402d18
402d06:	8b 50 fc             	mov    -0x4(%eax),%edx
402d09:	83 c1 23             	add    $0x23,%ecx
402d0c:	2b c2                	sub    %edx,%eax
402d0e:	83 c0 fc             	add    $0xfffffffc,%eax
402d11:	83 f8 1f             	cmp    $0x1f,%eax
402d14:	77 1f                	ja     0x402d35
402d16:	8b c2                	mov    %edx,%eax
402d18:	51                   	push   %ecx
402d19:	50                   	push   %eax
402d1a:	e8 2d 49 00 00       	call   0x40764c
402d1f:	83 c4 08             	add    $0x8,%esp
402d22:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
402d29:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
402d30:	c6 06 00             	movb   $0x0,(%esi)
402d33:	5e                   	pop    %esi
402d34:	c3                   	ret
402d35:	e8 57 a3 00 00       	call   0x40d091
402d3a:	cc                   	int3
402d3b:	cc                   	int3
402d3c:	cc                   	int3
402d3d:	cc                   	int3
402d3e:	cc                   	int3
402d3f:	cc                   	int3
402d40:	55                   	push   %ebp
402d41:	8b ec                	mov    %esp,%ebp
402d43:	83 e4 f8             	and    $0xfffffff8,%esp
402d46:	83 ec 4c             	sub    $0x4c,%esp
402d49:	a1 14 30 43 00       	mov    0x433014,%eax
402d4e:	33 c4                	xor    %esp,%eax
402d50:	89 44 24 48          	mov    %eax,0x48(%esp)
402d54:	8b 45 1c             	mov    0x1c(%ebp),%eax
402d57:	53                   	push   %ebx
402d58:	8b 5d 08             	mov    0x8(%ebp),%ebx
402d5b:	56                   	push   %esi
402d5c:	8b 75 14             	mov    0x14(%ebp),%esi
402d5f:	57                   	push   %edi
402d60:	50                   	push   %eax
402d61:	68 0c fc 42 00       	push   $0x42fc0c
402d66:	8d 44 24 18          	lea    0x18(%esp),%eax
402d6a:	8b f9                	mov    %ecx,%edi
402d6c:	6a 40                	push   $0x40
402d6e:	50                   	push   %eax
402d6f:	e8 5c e4 ff ff       	call   0x4011d0
402d74:	50                   	push   %eax
402d75:	8d 44 24 24          	lea    0x24(%esp),%eax
402d79:	50                   	push   %eax
402d7a:	ff 75 18             	push   0x18(%ebp)
402d7d:	56                   	push   %esi
402d7e:	ff 75 10             	push   0x10(%ebp)
402d81:	ff 75 0c             	push   0xc(%ebp)
402d84:	53                   	push   %ebx
402d85:	57                   	push   %edi
402d86:	e8 95 0d 00 00       	call   0x403b20
402d8b:	8b 8c 24 84 00 00 00 	mov    0x84(%esp),%ecx
402d92:	83 c4 30             	add    $0x30,%esp
402d95:	8b c3                	mov    %ebx,%eax
402d97:	5f                   	pop    %edi
402d98:	5e                   	pop    %esi
402d99:	5b                   	pop    %ebx
402d9a:	33 cc                	xor    %esp,%ecx
402d9c:	e8 6b 46 00 00       	call   0x40740c
402da1:	8b e5                	mov    %ebp,%esp
402da3:	5d                   	pop    %ebp
402da4:	c2 18 00             	ret    $0x18
402da7:	cc                   	int3
402da8:	cc                   	int3
402da9:	cc                   	int3
402daa:	cc                   	int3
402dab:	cc                   	int3
402dac:	cc                   	int3
402dad:	cc                   	int3
402dae:	cc                   	int3
402daf:	cc                   	int3
402db0:	55                   	push   %ebp
402db1:	8b ec                	mov    %esp,%ebp
402db3:	6a ff                	push   $0xffffffff
402db5:	68 0d 2b 42 00       	push   $0x422b0d
402dba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402dc0:	50                   	push   %eax
402dc1:	83 ec 3c             	sub    $0x3c,%esp
402dc4:	a1 14 30 43 00       	mov    0x433014,%eax
402dc9:	33 c5                	xor    %ebp,%eax
402dcb:	89 45 f0             	mov    %eax,-0x10(%ebp)
402dce:	56                   	push   %esi
402dcf:	57                   	push   %edi
402dd0:	50                   	push   %eax
402dd1:	8d 45 f4             	lea    -0xc(%ebp),%eax
402dd4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402dda:	89 4d c8             	mov    %ecx,-0x38(%ebp)
402ddd:	8b 45 08             	mov    0x8(%ebp),%eax
402de0:	33 d2                	xor    %edx,%edx
402de2:	8b 75 14             	mov    0x14(%ebp),%esi
402de5:	bf 0f 00 00 00       	mov    $0xf,%edi
402dea:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
402df1:	89 45 b8             	mov    %eax,-0x48(%ebp)
402df4:	89 75 bc             	mov    %esi,-0x44(%ebp)
402df7:	89 55 e0             	mov    %edx,-0x20(%ebp)
402dfa:	89 7d e4             	mov    %edi,-0x1c(%ebp)
402dfd:	88 55 d0             	mov    %dl,-0x30(%ebp)
402e00:	89 55 fc             	mov    %edx,-0x4(%ebp)
402e03:	8b 4e 14             	mov    0x14(%esi),%ecx
402e06:	81 e1 00 30 00 00    	and    $0x3000,%ecx
402e0c:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
402e12:	75 11                	jne    0x402e25
402e14:	83 c8 ff             	or     $0xffffffff,%eax
402e17:	8d 72 0d             	lea    0xd(%edx),%esi
402e1a:	89 45 cc             	mov    %eax,-0x34(%ebp)
402e1d:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402e20:	e9 8b 00 00 00       	jmp    0x402eb0
402e25:	8b 46 18             	mov    0x18(%esi),%eax
402e28:	8b 76 1c             	mov    0x1c(%esi),%esi
402e2b:	89 45 cc             	mov    %eax,-0x34(%ebp)
402e2e:	85 f6                	test   %esi,%esi
402e30:	7c 0a                	jl     0x402e3c
402e32:	7f 04                	jg     0x402e38
402e34:	85 c0                	test   %eax,%eax
402e36:	74 04                	je     0x402e3c
402e38:	8b f0                	mov    %eax,%esi
402e3a:	eb 16                	jmp    0x402e52
402e3c:	0b c6                	or     %esi,%eax
402e3e:	75 0d                	jne    0x402e4d
402e40:	85 c9                	test   %ecx,%ecx
402e42:	75 05                	jne    0x402e49
402e44:	8d 70 01             	lea    0x1(%eax),%esi
402e47:	eb 67                	jmp    0x402eb0
402e49:	33 f6                	xor    %esi,%esi
402e4b:	eb 05                	jmp    0x402e52
402e4d:	be 06 00 00 00       	mov    $0x6,%esi
402e52:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
402e58:	75 56                	jne    0x402eb0
402e5a:	f2 0f 10 4d 1c       	movsd  0x1c(%ebp),%xmm1
402e5f:	0f 28 c1             	movaps %xmm1,%xmm0
402e62:	0f 54 05 30 fd 42 00 	andps  0x42fd30,%xmm0
402e69:	66 0f 2f 05 20 fd 42 	comisd 0x42fd20,%xmm0
402e70:	00
402e71:	76 3d                	jbe    0x402eb0
402e73:	8d 45 c4             	lea    -0x3c(%ebp),%eax
402e76:	50                   	push   %eax
402e77:	83 ec 08             	sub    $0x8,%esp
402e7a:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
402e7f:	e8 aa 9d 00 00       	call   0x40cc2e
402e84:	8b 45 c4             	mov    -0x3c(%ebp),%eax
402e87:	83 c4 0c             	add    $0xc,%esp
402e8a:	99                   	cltd
402e8b:	dd d8                	fstp   %st(0)
402e8d:	33 c2                	xor    %edx,%eax
402e8f:	8b 7d e4             	mov    -0x1c(%ebp),%edi
402e92:	2b c2                	sub    %edx,%eax
402e94:	69 c8 97 75 00 00    	imul   $0x7597,%eax,%ecx
402e9a:	b8 89 b5 f8 14       	mov    $0x14f8b589,%eax
402e9f:	f7 e9                	imul   %ecx
402ea1:	c1 fa 0d             	sar    $0xd,%edx
402ea4:	8b c2                	mov    %edx,%eax
402ea6:	c1 e8 1f             	shr    $0x1f,%eax
402ea9:	03 c2                	add    %edx,%eax
402eab:	8b 55 e0             	mov    -0x20(%ebp),%edx
402eae:	03 f0                	add    %eax,%esi
402eb0:	83 c6 32             	add    $0x32,%esi
402eb3:	3b f2                	cmp    %edx,%esi
402eb5:	77 13                	ja     0x402eca
402eb7:	83 ff 10             	cmp    $0x10,%edi
402eba:	89 75 e0             	mov    %esi,-0x20(%ebp)
402ebd:	8d 45 d0             	lea    -0x30(%ebp),%eax
402ec0:	0f 43 45 d0          	cmovae -0x30(%ebp),%eax
402ec4:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
402ec8:	eb 43                	jmp    0x402f0d
402eca:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
402ecd:	8b fe                	mov    %esi,%edi
402ecf:	8b c1                	mov    %ecx,%eax
402ed1:	2b fa                	sub    %edx,%edi
402ed3:	2b c2                	sub    %edx,%eax
402ed5:	3b f8                	cmp    %eax,%edi
402ed7:	77 21                	ja     0x402efa
402ed9:	89 75 e0             	mov    %esi,-0x20(%ebp)