436a2d:	0f b7 78 06          	movzwl 0x6(%eax),%edi
436a31:	8b 00                	mov    (%eax),%eax
436a33:	8b cf                	mov    %edi,%ecx
436a35:	c1 e9 04             	shr    $0x4,%ecx
436a38:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
436a3e:	81 e7 00 80 00 00    	and    $0x8000,%edi
436a44:	8b f1                	mov    %ecx,%esi
436a46:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
436a4c:	bb 00 00 00 80       	mov    $0x80000000,%ebx
436a51:	89 7d f8             	mov    %edi,-0x8(%ebp)
436a54:	89 45 fc             	mov    %eax,-0x4(%ebp)
436a57:	85 f6                	test   %esi,%esi
436a59:	74 17                	je     0x436a72
436a5b:	81 fe ff 07 00 00    	cmp    $0x7ff,%esi
436a61:	74 08                	je     0x436a6b
436a63:	8d 81 00 3c 00 00    	lea    0x3c00(%ecx),%eax
436a69:	eb 25                	jmp    0x436a90
436a6b:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
436a70:	eb 21                	jmp    0x436a93
436a72:	85 d2                	test   %edx,%edx
436a74:	75 12                	jne    0x436a88
436a76:	85 c0                	test   %eax,%eax
436a78:	75 0e                	jne    0x436a88
436a7a:	8b 45 08             	mov    0x8(%ebp),%eax
436a7d:	21 50 04             	and    %edx,0x4(%eax)
436a80:	21 10                	and    %edx,(%eax)
436a82:	66 89 78 08          	mov    %di,0x8(%eax)
436a86:	eb 58                	jmp    0x436ae0
436a88:	8d 81 01 3c 00 00    	lea    0x3c01(%ecx),%eax
436a8e:	33 db                	xor    %ebx,%ebx
436a90:	0f b7 c0             	movzwl %ax,%eax
436a93:	8b 4d fc             	mov    -0x4(%ebp),%ecx
436a96:	8b f1                	mov    %ecx,%esi
436a98:	c1 ee 15             	shr    $0x15,%esi
436a9b:	c1 e2 0b             	shl    $0xb,%edx
436a9e:	0b f2                	or     %edx,%esi
436aa0:	0b f3                	or     %ebx,%esi
436aa2:	8b 5d 08             	mov    0x8(%ebp),%ebx
436aa5:	c1 e1 0b             	shl    $0xb,%ecx
436aa8:	89 45 0c             	mov    %eax,0xc(%ebp)
436aab:	89 73 04             	mov    %esi,0x4(%ebx)
436aae:	89 0b                	mov    %ecx,(%ebx)
436ab0:	85 f6                	test   %esi,%esi
436ab2:	78 26                	js     0x436ada
436ab4:	8b f8                	mov    %eax,%edi
436ab6:	8b 13                	mov    (%ebx),%edx
436ab8:	8b ca                	mov    %edx,%ecx
436aba:	c1 e9 1f             	shr    $0x1f,%ecx
436abd:	03 f6                	add    %esi,%esi
436abf:	8d 04 12             	lea    (%edx,%edx,1),%eax
436ac2:	81 c7 ff ff 00 00    	add    $0xffff,%edi
436ac8:	0b f1                	or     %ecx,%esi
436aca:	89 03                	mov    %eax,(%ebx)
436acc:	79 e8                	jns    0x436ab6
436ace:	89 7d 0c             	mov    %edi,0xc(%ebp)
436ad1:	8b 7d f8             	mov    -0x8(%ebp),%edi
436ad4:	8b 45 0c             	mov    0xc(%ebp),%eax
436ad7:	89 73 04             	mov    %esi,0x4(%ebx)
436ada:	0b f8                	or     %eax,%edi
436adc:	66 89 7b 08          	mov    %di,0x8(%ebx)
436ae0:	5f                   	pop    %edi
436ae1:	5e                   	pop    %esi
436ae2:	5b                   	pop    %ebx
436ae3:	c9                   	leave
436ae4:	c3                   	ret
436ae5:	55                   	push   %ebp
436ae6:	8b ec                	mov    %esp,%ebp
436ae8:	83 ec 30             	sub    $0x30,%esp
436aeb:	a1 c0 ad 4b 00       	mov    0x4badc0,%eax
436af0:	33 c5                	xor    %ebp,%eax
436af2:	89 45 fc             	mov    %eax,-0x4(%ebp)
436af5:	8b 45 14             	mov    0x14(%ebp),%eax
436af8:	53                   	push   %ebx
436af9:	8b 5d 10             	mov    0x10(%ebp),%ebx
436afc:	56                   	push   %esi
436afd:	89 45 dc             	mov    %eax,-0x24(%ebp)
436b00:	57                   	push   %edi
436b01:	8d 45 08             	lea    0x8(%ebp),%eax
436b04:	50                   	push   %eax
436b05:	8d 45 d0             	lea    -0x30(%ebp),%eax
436b08:	50                   	push   %eax
436b09:	e8 11 ff ff ff       	call   0x436a1f
436b0e:	59                   	pop    %ecx
436b0f:	59                   	pop    %ecx
436b10:	8d 45 e0             	lea    -0x20(%ebp),%eax
436b13:	50                   	push   %eax
436b14:	6a 00                	push   $0x0
436b16:	6a 11                	push   $0x11
436b18:	83 ec 0c             	sub    $0xc,%esp
436b1b:	8d 75 d0             	lea    -0x30(%ebp),%esi
436b1e:	8b fc                	mov    %esp,%edi
436b20:	a5                   	movsl  %ds:(%esi),%es:(%edi)
436b21:	a5                   	movsl  %ds:(%esi),%es:(%edi)
436b22:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
436b24:	e8 a0 0e 00 00       	call   0x4379c9
436b29:	8b 75 dc             	mov    -0x24(%ebp),%esi
436b2c:	89 43 08             	mov    %eax,0x8(%ebx)
436b2f:	0f be 45 e2          	movsbl -0x1e(%ebp),%eax
436b33:	89 03                	mov    %eax,(%ebx)
436b35:	0f bf 45 e0          	movswl -0x20(%ebp),%eax
436b39:	89 43 04             	mov    %eax,0x4(%ebx)
436b3c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
436b3f:	50                   	push   %eax
436b40:	ff 75 18             	push   0x18(%ebp)
436b43:	56                   	push   %esi
436b44:	e8 c9 b9 ff ff       	call   0x432512
436b49:	83 c4 24             	add    $0x24,%esp
436b4c:	85 c0                	test   %eax,%eax
436b4e:	75 14                	jne    0x436b64
436b50:	8b 4d fc             	mov    -0x4(%ebp),%ecx
436b53:	5f                   	pop    %edi
436b54:	89 73 0c             	mov    %esi,0xc(%ebx)
436b57:	5e                   	pop    %esi
436b58:	8b c3                	mov    %ebx,%eax
436b5a:	33 cd                	xor    %ebp,%ecx
436b5c:	5b                   	pop    %ebx
436b5d:	e8 aa 3b ff ff       	call   0x42a70c
436b62:	c9                   	leave
436b63:	c3                   	ret
436b64:	33 c0                	xor    %eax,%eax
436b66:	50                   	push   %eax
436b67:	50                   	push   %eax
436b68:	50                   	push   %eax
436b69:	50                   	push   %eax
436b6a:	50                   	push   %eax
436b6b:	e8 b0 02 ff ff       	call   0x426e20
436b70:	cc                   	int3
436b71:	cc                   	int3
436b72:	cc                   	int3
436b73:	cc                   	int3
436b74:	cc                   	int3
436b75:	cc                   	int3
436b76:	cc                   	int3
436b77:	cc                   	int3
436b78:	cc                   	int3
436b79:	cc                   	int3
436b7a:	cc                   	int3
436b7b:	cc                   	int3
436b7c:	cc                   	int3
436b7d:	cc                   	int3
436b7e:	cc                   	int3
436b7f:	cc                   	int3
436b80:	57                   	push   %edi
436b81:	56                   	push   %esi
436b82:	55                   	push   %ebp
436b83:	33 ff                	xor    %edi,%edi
436b85:	33 ed                	xor    %ebp,%ebp
436b87:	8b 44 24 14          	mov    0x14(%esp),%eax
436b8b:	0b c0                	or     %eax,%eax
436b8d:	7d 15                	jge    0x436ba4
436b8f:	47                   	inc    %edi
436b90:	45                   	inc    %ebp
436b91:	8b 54 24 10          	mov    0x10(%esp),%edx
436b95:	f7 d8                	neg    %eax
436b97:	f7 da                	neg    %edx
436b99:	83 d8 00             	sbb    $0x0,%eax
436b9c:	89 44 24 14          	mov    %eax,0x14(%esp)
436ba0:	89 54 24 10          	mov    %edx,0x10(%esp)
436ba4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
436ba8:	0b c0                	or     %eax,%eax
436baa:	7d 14                	jge    0x436bc0
436bac:	47                   	inc    %edi
436bad:	8b 54 24 18          	mov    0x18(%esp),%edx
436bb1:	f7 d8                	neg    %eax
436bb3:	f7 da                	neg    %edx
436bb5:	83 d8 00             	sbb    $0x0,%eax
436bb8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
436bbc:	89 54 24 18          	mov    %edx,0x18(%esp)
436bc0:	0b c0                	or     %eax,%eax
436bc2:	75 28                	jne    0x436bec
436bc4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
436bc8:	8b 44 24 14          	mov    0x14(%esp),%eax
436bcc:	33 d2                	xor    %edx,%edx
436bce:	f7 f1                	div    %ecx
436bd0:	8b d8                	mov    %eax,%ebx
436bd2:	8b 44 24 10          	mov    0x10(%esp),%eax
436bd6:	f7 f1                	div    %ecx
436bd8:	8b f0                	mov    %eax,%esi
436bda:	8b c3                	mov    %ebx,%eax
436bdc:	f7 64 24 18          	mull   0x18(%esp)
436be0:	8b c8                	mov    %eax,%ecx
436be2:	8b c6                	mov    %esi,%eax
436be4:	f7 64 24 18          	mull   0x18(%esp)
436be8:	03 d1                	add    %ecx,%edx
436bea:	eb 47                	jmp    0x436c33
436bec:	8b d8                	mov    %eax,%ebx
436bee:	8b 4c 24 18          	mov    0x18(%esp),%ecx
436bf2:	8b 54 24 14          	mov    0x14(%esp),%edx
436bf6:	8b 44 24 10          	mov    0x10(%esp),%eax
436bfa:	d1 eb                	shr    $1,%ebx
436bfc:	d1 d9                	rcr    $1,%ecx
436bfe:	d1 ea                	shr    $1,%edx
436c00:	d1 d8                	rcr    $1,%eax
436c02:	0b db                	or     %ebx,%ebx
436c04:	75 f4                	jne    0x436bfa
436c06:	f7 f1                	div    %ecx
436c08:	8b f0                	mov    %eax,%esi
436c0a:	f7 64 24 1c          	mull   0x1c(%esp)
436c0e:	8b c8                	mov    %eax,%ecx
436c10:	8b 44 24 18          	mov    0x18(%esp),%eax
436c14:	f7 e6                	mul    %esi
436c16:	03 d1                	add    %ecx,%edx
436c18:	72 0e                	jb     0x436c28
436c1a:	3b 54 24 14          	cmp    0x14(%esp),%edx
436c1e:	77 08                	ja     0x436c28
436c20:	72 0f                	jb     0x436c31
436c22:	3b 44 24 10          	cmp    0x10(%esp),%eax
436c26:	76 09                	jbe    0x436c31
436c28:	4e                   	dec    %esi
436c29:	2b 44 24 18          	sub    0x18(%esp),%eax
436c2d:	1b 54 24 1c          	sbb    0x1c(%esp),%edx
436c31:	33 db                	xor    %ebx,%ebx
436c33:	2b 44 24 10          	sub    0x10(%esp),%eax
436c37:	1b 54 24 14          	sbb    0x14(%esp),%edx
436c3b:	4d                   	dec    %ebp
436c3c:	79 07                	jns    0x436c45
436c3e:	f7 da                	neg    %edx
436c40:	f7 d8                	neg    %eax
436c42:	83 da 00             	sbb    $0x0,%edx
436c45:	8b ca                	mov    %edx,%ecx
436c47:	8b d3                	mov    %ebx,%edx
436c49:	8b d9                	mov    %ecx,%ebx
436c4b:	8b c8                	mov    %eax,%ecx
436c4d:	8b c6                	mov    %esi,%eax
436c4f:	4f                   	dec    %edi
436c50:	75 07                	jne    0x436c59
436c52:	f7 da                	neg    %edx
436c54:	f7 d8                	neg    %eax
436c56:	83 da 00             	sbb    $0x0,%edx
436c59:	5d                   	pop    %ebp
436c5a:	5e                   	pop    %esi
436c5b:	5f                   	pop    %edi
436c5c:	c2 10 00             	ret    $0x10
436c5f:	55                   	push   %ebp
436c60:	8b ec                	mov    %esp,%ebp
436c62:	8b 4d 10             	mov    0x10(%ebp),%ecx
436c65:	8b 45 0c             	mov    0xc(%ebp),%eax
436c68:	81 e1 ff ff f7 ff    	and    $0xfff7ffff,%ecx
436c6e:	23 c1                	and    %ecx,%eax
436c70:	56                   	push   %esi
436c71:	8b 75 08             	mov    0x8(%ebp),%esi
436c74:	a9 e0 fc f0 fc       	test   $0xfcf0fce0,%eax
436c79:	74 24                	je     0x436c9f
436c7b:	85 f6                	test   %esi,%esi
436c7d:	74 0d                	je     0x436c8c
436c7f:	6a 00                	push   $0x0
436c81:	6a 00                	push   $0x0
436c83:	e8 ae 17 00 00       	call   0x438436
436c88:	59                   	pop    %ecx
436c89:	59                   	pop    %ecx
436c8a:	89 06                	mov    %eax,(%esi)
436c8c:	e8 7d 0f ff ff       	call   0x427c0e
436c91:	6a 16                	push   $0x16
436c93:	5e                   	pop    %esi
436c94:	89 30                	mov    %esi,(%eax)
436c96:	e8 75 01 ff ff       	call   0x426e10
436c9b:	8b c6                	mov    %esi,%eax
436c9d:	eb 1a                	jmp    0x436cb9
436c9f:	51                   	push   %ecx
436ca0:	ff 75 0c             	push   0xc(%ebp)
436ca3:	85 f6                	test   %esi,%esi
436ca5:	74 09                	je     0x436cb0
436ca7:	e8 8a 17 00 00       	call   0x438436
436cac:	89 06                	mov    %eax,(%esi)
436cae:	eb 05                	jmp    0x436cb5
436cb0:	e8 81 17 00 00       	call   0x438436
436cb5:	59                   	pop    %ecx
436cb6:	59                   	pop    %ecx
436cb7:	33 c0                	xor    %eax,%eax
436cb9:	5e                   	pop    %esi
436cba:	5d                   	pop    %ebp
436cbb:	c3                   	ret
436cbc:	55                   	push   %ebp
436cbd:	8b ec                	mov    %esp,%ebp
436cbf:	83 ec 24             	sub    $0x24,%esp
436cc2:	8d 4d dc             	lea    -0x24(%ebp),%ecx
436cc5:	ff 75 08             	push   0x8(%ebp)
436cc8:	e8 52 a2 fe ff       	call   0x420f1f
436ccd:	8b 45 10             	mov    0x10(%ebp),%eax
436cd0:	85 c0                	test   %eax,%eax
436cd2:	74 05                	je     0x436cd9
436cd4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
436cd7:	89 08                	mov    %ecx,(%eax)
436cd9:	8b 45 0c             	mov    0xc(%ebp),%eax
436cdc:	53                   	push   %ebx
436cdd:	56                   	push   %esi
436cde:	57                   	push   %edi
436cdf:	85 c0                	test   %eax,%eax
436ce1:	74 11                	je     0x436cf4
436ce3:	8b 7d 14             	mov    0x14(%ebp),%edi
436ce6:	85 ff                	test   %edi,%edi
436ce8:	74 1f                	je     0x436d09
436cea:	83 ff 02             	cmp    $0x2,%edi
436ced:	7c 05                	jl     0x436cf4
436cef:	83 ff 24             	cmp    $0x24,%edi
436cf2:	7e 15                	jle    0x436d09
436cf4:	e8 15 0f ff ff       	call   0x427c0e
436cf9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
436cff:	e8 0c 01 ff ff       	call   0x426e10
436d04:	e9 c1 01 00 00       	jmp    0x436eca
436d09:	8b 7d dc             	mov    -0x24(%ebp),%edi
436d0c:	33 db                	xor    %ebx,%ebx
436d0e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
436d11:	8a 18                	mov    (%eax),%bl
436d13:	8d 70 01             	lea    0x1(%eax),%esi
436d16:	83 7f 74 01          	cmpl   $0x1,0x74(%edi)
436d1a:	7e 17                	jle    0x436d33
436d1c:	8d 45 dc             	lea    -0x24(%ebp),%eax
436d1f:	50                   	push   %eax
436d20:	0f b6 c3             	movzbl %bl,%eax
436d23:	6a 08                	push   $0x8
436d25:	50                   	push   %eax
436d26:	e8 91 2f ff ff       	call   0x429cbc
436d2b:	8b 7d dc             	mov    -0x24(%ebp),%edi
436d2e:	83 c4 0c             	add    $0xc,%esp
436d31:	eb 10                	jmp    0x436d43
436d33:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
436d39:	0f b6 cb             	movzbl %bl,%ecx
436d3c:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
436d40:	83 e0 08             	and    $0x8,%eax
436d43:	85 c0                	test   %eax,%eax
436d45:	74 05                	je     0x436d4c
436d47:	8a 1e                	mov    (%esi),%bl
436d49:	46                   	inc    %esi
436d4a:	eb ca                	jmp    0x436d16
436d4c:	8b 45 18             	mov    0x18(%ebp),%eax
436d4f:	88 5d ff             	mov    %bl,-0x1(%ebp)
436d52:	80 fb 2d             	cmp    $0x2d,%bl
436d55:	75 0b                	jne    0x436d62
436d57:	83 c8 02             	or     $0x2,%eax
436d5a:	8a 0e                	mov    (%esi),%cl
436d5c:	88 4d ff             	mov    %cl,-0x1(%ebp)
436d5f:	46                   	inc    %esi
436d60:	eb 08                	jmp    0x436d6a
436d62:	80 fb 2b             	cmp    $0x2b,%bl
436d65:	74 f3                	je     0x436d5a
436d67:	8a 4d ff             	mov    -0x1(%ebp),%cl
436d6a:	8b 7d 14             	mov    0x14(%ebp),%edi
436d6d:	8b 5d f4             	mov    -0xc(%ebp),%ebx
436d70:	89 45 f8             	mov    %eax,-0x8(%ebp)
436d73:	85 ff                	test   %edi,%edi
436d75:	0f 88 43 01 00 00    	js     0x436ebe
436d7b:	83 ff 01             	cmp    $0x1,%edi
436d7e:	0f 84 3a 01 00 00    	je     0x436ebe
436d84:	83 ff 24             	cmp    $0x24,%edi
436d87:	0f 8f 31 01 00 00    	jg     0x436ebe
436d8d:	85 ff                	test   %edi,%edi
436d8f:	75 1d                	jne    0x436dae
436d91:	80 f9 30             	cmp    $0x30,%cl
436d94:	74 05                	je     0x436d9b