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)
402edc:	83 f9 10             	cmp    $0x10,%ecx
402edf:	8d 75 d0             	lea    -0x30(%ebp),%esi
402ee2:	0f 43 75 d0          	cmovae -0x30(%ebp),%esi
402ee6:	57                   	push   %edi
402ee7:	03 f2                	add    %edx,%esi
402ee9:	6a 00                	push   $0x0
402eeb:	56                   	push   %esi
402eec:	e8 ff 5f 00 00       	call   0x408ef0
402ef1:	83 c4 0c             	add    $0xc,%esp
402ef4:	c6 04 3e 00          	movb   $0x0,(%esi,%edi,1)
402ef8:	eb 13                	jmp    0x402f0d
402efa:	6a 00                	push   $0x0
402efc:	57                   	push   %edi
402efd:	c6 45 c4 00          	movb   $0x0,-0x3c(%ebp)
402f01:	8d 4d d0             	lea    -0x30(%ebp),%ecx
402f04:	ff 75 c4             	push   -0x3c(%ebp)
402f07:	57                   	push   %edi
402f08:	e8 33 23 00 00       	call   0x405240
402f0d:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
402f11:	8d 75 d0             	lea    -0x30(%ebp),%esi
402f14:	f2 0f 10 45 1c       	movsd  0x1c(%ebp),%xmm0
402f19:	8d 45 e8             	lea    -0x18(%ebp),%eax
402f1c:	0f 43 75 d0          	cmovae -0x30(%ebp),%esi
402f20:	83 ec 08             	sub    $0x8,%esp
402f23:	8b 7d bc             	mov    -0x44(%ebp),%edi
402f26:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
402f2b:	ff 75 cc             	push   -0x34(%ebp)
402f2e:	ff 77 14             	push   0x14(%edi)
402f31:	6a 4c                	push   $0x4c
402f33:	50                   	push   %eax
402f34:	ff 75 c8             	push   -0x38(%ebp)
402f37:	e8 c4 14 00 00       	call   0x404400
402f3c:	83 c4 10             	add    $0x10,%esp
402f3f:	50                   	push   %eax
402f40:	ff 75 e0             	push   -0x20(%ebp)
402f43:	56                   	push   %esi
402f44:	e8 87 e2 ff ff       	call   0x4011d0
402f49:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
402f4d:	8d 4d d0             	lea    -0x30(%ebp),%ecx
402f50:	8b 75 b8             	mov    -0x48(%ebp),%esi
402f53:	0f 43 4d d0          	cmovae -0x30(%ebp),%ecx
402f57:	50                   	push   %eax
402f58:	51                   	push   %ecx
402f59:	ff 75 18             	push   0x18(%ebp)
402f5c:	57                   	push   %edi
402f5d:	ff 75 10             	push   0x10(%ebp)
402f60:	ff 75 0c             	push   0xc(%ebp)
402f63:	56                   	push   %esi
402f64:	ff 75 c8             	push   -0x38(%ebp)
402f67:	e8 44 10 00 00       	call   0x403fb0
402f6c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
402f6f:	83 c4 38             	add    $0x38,%esp
402f72:	83 fa 10             	cmp    $0x10,%edx
402f75:	72 28                	jb     0x402f9f
402f77:	8b 4d d0             	mov    -0x30(%ebp),%ecx
402f7a:	42                   	inc    %edx
402f7b:	8b c1                	mov    %ecx,%eax
402f7d:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
402f83:	72 10                	jb     0x402f95
402f85:	8b 49 fc             	mov    -0x4(%ecx),%ecx
402f88:	83 c2 23             	add    $0x23,%edx
402f8b:	2b c1                	sub    %ecx,%eax
402f8d:	83 c0 fc             	add    $0xfffffffc,%eax
402f90:	83 f8 1f             	cmp    $0x1f,%eax
402f93:	77 29                	ja     0x402fbe
402f95:	52                   	push   %edx
402f96:	51                   	push   %ecx
402f97:	e8 b0 46 00 00       	call   0x40764c
402f9c:	83 c4 08             	add    $0x8,%esp
402f9f:	8b c6                	mov    %esi,%eax
402fa1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402fa4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402fab:	59                   	pop    %ecx
402fac:	5f                   	pop    %edi
402fad:	5e                   	pop    %esi
402fae:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402fb1:	33 cd                	xor    %ebp,%ecx
402fb3:	e8 54 44 00 00       	call   0x40740c
402fb8:	8b e5                	mov    %ebp,%esp
402fba:	5d                   	pop    %ebp
402fbb:	c2 1c 00             	ret    $0x1c
402fbe:	e8 ce a0 00 00       	call   0x40d091
402fc3:	cc                   	int3
402fc4:	cc                   	int3
402fc5:	cc                   	int3
402fc6:	cc                   	int3
402fc7:	cc                   	int3
402fc8:	cc                   	int3
402fc9:	cc                   	int3
402fca:	cc                   	int3
402fcb:	cc                   	int3
402fcc:	cc                   	int3
402fcd:	cc                   	int3
402fce:	cc                   	int3
402fcf:	cc                   	int3
402fd0:	55                   	push   %ebp
402fd1:	8b ec                	mov    %esp,%ebp
402fd3:	6a ff                	push   $0xffffffff
402fd5:	68 0d 2b 42 00       	push   $0x422b0d
402fda:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402fe0:	50                   	push   %eax
402fe1:	83 ec 3c             	sub    $0x3c,%esp
402fe4:	a1 14 30 43 00       	mov    0x433014,%eax
402fe9:	33 c5                	xor    %ebp,%eax
402feb:	89 45 f0             	mov    %eax,-0x10(%ebp)
402fee:	56                   	push   %esi
402fef:	57                   	push   %edi
402ff0:	50                   	push   %eax
402ff1:	8d 45 f4             	lea    -0xc(%ebp),%eax
402ff4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402ffa:	89 4d c8             	mov    %ecx,-0x38(%ebp)
402ffd:	8b 45 08             	mov    0x8(%ebp),%eax
403000:	33 d2                	xor    %edx,%edx
403002:	8b 75 14             	mov    0x14(%ebp),%esi
403005:	bf 0f 00 00 00       	mov    $0xf,%edi
40300a:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
403011:	89 45 b8             	mov    %eax,-0x48(%ebp)
403014:	89 75 bc             	mov    %esi,-0x44(%ebp)
403017:	89 55 e0             	mov    %edx,-0x20(%ebp)
40301a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40301d:	88 55 d0             	mov    %dl,-0x30(%ebp)
403020:	89 55 fc             	mov    %edx,-0x4(%ebp)
403023:	8b 4e 14             	mov    0x14(%esi),%ecx
403026:	81 e1 00 30 00 00    	and    $0x3000,%ecx
40302c:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
403032:	75 11                	jne    0x403045
403034:	83 c8 ff             	or     $0xffffffff,%eax
403037:	8d 72 0d             	lea    0xd(%edx),%esi
40303a:	89 45 cc             	mov    %eax,-0x34(%ebp)
40303d:	89 45 c4             	mov    %eax,-0x3c(%ebp)
403040:	e9 8b 00 00 00       	jmp    0x4030d0
403045:	8b 46 18             	mov    0x18(%esi),%eax
403048:	8b 76 1c             	mov    0x1c(%esi),%esi
40304b:	89 45 cc             	mov    %eax,-0x34(%ebp)
40304e:	85 f6                	test   %esi,%esi
403050:	7c 0a                	jl     0x40305c
403052:	7f 04                	jg     0x403058
403054:	85 c0                	test   %eax,%eax
403056:	74 04                	je     0x40305c
403058:	8b f0                	mov    %eax,%esi
40305a:	eb 16                	jmp    0x403072
40305c:	0b c6                	or     %esi,%eax
40305e:	75 0d                	jne    0x40306d
403060:	85 c9                	test   %ecx,%ecx
403062:	75 05                	jne    0x403069
403064:	8d 70 01             	lea    0x1(%eax),%esi
403067:	eb 67                	jmp    0x4030d0
403069:	33 f6                	xor    %esi,%esi
40306b:	eb 05                	jmp    0x403072
40306d:	be 06 00 00 00       	mov    $0x6,%esi
403072:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
403078:	75 56                	jne    0x4030d0
40307a:	f2 0f 10 4d 1c       	movsd  0x1c(%ebp),%xmm1
40307f:	0f 28 c1             	movaps %xmm1,%xmm0
403082:	0f 54 05 30 fd 42 00 	andps  0x42fd30,%xmm0
403089:	66 0f 2f 05 20 fd 42 	comisd 0x42fd20,%xmm0
403090:	00
403091:	76 3d                	jbe    0x4030d0
403093:	8d 45 c4             	lea    -0x3c(%ebp),%eax
403096:	50                   	push   %eax
403097:	83 ec 08             	sub    $0x8,%esp
40309a:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
40309f:	e8 8a 9b 00 00       	call   0x40cc2e
4030a4:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4030a7:	83 c4 0c             	add    $0xc,%esp
4030aa:	99                   	cltd
4030ab:	dd d8                	fstp   %st(0)
4030ad:	33 c2                	xor    %edx,%eax
4030af:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4030b2:	2b c2                	sub    %edx,%eax
4030b4:	69 c8 97 75 00 00    	imul   $0x7597,%eax,%ecx
4030ba:	b8 89 b5 f8 14       	mov    $0x14f8b589,%eax
4030bf:	f7 e9                	imul   %ecx
4030c1:	c1 fa 0d             	sar    $0xd,%edx
4030c4:	8b c2                	mov    %edx,%eax