451dea:	e8 df 10 00 00       	call   0x452ece
451def:	3b da                	cmp    %edx,%ebx
451df1:	77 23                	ja     0x451e16
451df3:	72 04                	jb     0x451df9
451df5:	3b f8                	cmp    %eax,%edi
451df7:	77 1d                	ja     0x451e16
451df9:	0f b6 06             	movzbl (%esi),%eax
451dfc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451dff:	0f a4 fb 04          	shld   $0x4,%edi,%ebx
451e03:	99                   	cltd
451e04:	c1 e7 04             	shl    $0x4,%edi
451e07:	03 f8                	add    %eax,%edi
451e09:	13 da                	adc    %edx,%ebx
451e0b:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
451e0f:	46                   	inc    %esi
451e10:	3b f1                	cmp    %ecx,%esi
451e12:	75 d3                	jne    0x451de7
451e14:	eb 03                	jmp    0x451e19
451e16:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451e19:	8b 55 08             	mov    0x8(%ebp),%edx
451e1c:	b0 01                	mov    $0x1,%al
451e1e:	eb 0d                	jmp    0x451e2d
451e20:	84 c0                	test   %al,%al
451e22:	74 10                	je     0x451e34
451e24:	8a 06                	mov    (%esi),%al
451e26:	46                   	inc    %esi
451e27:	84 c0                	test   %al,%al
451e29:	74 f1                	je     0x451e1c
451e2b:	32 c0                	xor    %al,%al
451e2d:	88 45 fc             	mov    %al,-0x4(%ebp)
451e30:	3b f1                	cmp    %ecx,%esi
451e32:	75 ec                	jne    0x451e20
451e34:	ff 75 0c             	push   0xc(%ebp)
451e37:	0f b6 82 08 03 00 00 	movzbl 0x308(%edx),%eax
451e3e:	ff 75 fc             	push   -0x4(%ebp)
451e41:	50                   	push   %eax
451e42:	ff 75 f8             	push   -0x8(%ebp)
451e45:	53                   	push   %ebx
451e46:	57                   	push   %edi
451e47:	e8 d7 db ff ff       	call   0x44fa23
451e4c:	83 c4 18             	add    $0x18,%esp
451e4f:	5f                   	pop    %edi
451e50:	5e                   	pop    %esi
451e51:	5b                   	pop    %ebx
451e52:	8b e5                	mov    %ebp,%esp
451e54:	5d                   	pop    %ebp
451e55:	c3                   	ret
451e56:	cc                   	int3
451e57:	cc                   	int3
451e58:	cc                   	int3
451e59:	cc                   	int3
451e5a:	cc                   	int3
451e5b:	cc                   	int3
451e5c:	cc                   	int3
451e5d:	cc                   	int3
451e5e:	cc                   	int3
451e5f:	cc                   	int3
451e60:	8b ff                	mov    %edi,%edi
451e62:	55                   	push   %ebp
451e63:	8b ec                	mov    %esp,%ebp
451e65:	0f bd 4d 08          	bsr    0x8(%ebp),%ecx
451e69:	74 09                	je     0x451e74
451e6b:	b8 1f 00 00 00       	mov    $0x1f,%eax
451e70:	2b c1                	sub    %ecx,%eax
451e72:	5d                   	pop    %ebp
451e73:	c3                   	ret
451e74:	b8 20 00 00 00       	mov    $0x20,%eax
451e79:	5d                   	pop    %ebp
451e7a:	c3                   	ret
451e7b:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
451e7f:	74 09                	je     0x451e8a
451e81:	83 c8 ff             	or     $0xffffffff,%eax
451e84:	ba ff ff 0f 00       	mov    $0xfffff,%edx
451e89:	c3                   	ret
451e8a:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
451e8f:	33 d2                	xor    %edx,%edx
451e91:	c3                   	ret
451e92:	cc                   	int3
451e93:	cc                   	int3
451e94:	cc                   	int3
451e95:	cc                   	int3
451e96:	cc                   	int3
451e97:	cc                   	int3
451e98:	cc                   	int3
451e99:	cc                   	int3
451e9a:	cc                   	int3
451e9b:	cc                   	int3
451e9c:	cc                   	int3
451e9d:	cc                   	int3
451e9e:	cc                   	int3
451e9f:	cc                   	int3
451ea0:	8b ff                	mov    %edi,%edi
451ea2:	55                   	push   %ebp
451ea3:	8b ec                	mov    %esp,%ebp
451ea5:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
451eab:	53                   	push   %ebx
451eac:	8b 5d 08             	mov    0x8(%ebp),%ebx
451eaf:	8b 03                	mov    (%ebx),%eax
451eb1:	85 c0                	test   %eax,%eax
451eb3:	75 07                	jne    0x451ebc
451eb5:	33 d2                	xor    %edx,%edx
451eb7:	5b                   	pop    %ebx
451eb8:	8b e5                	mov    %ebp,%esp
451eba:	5d                   	pop    %ebp
451ebb:	c3                   	ret
451ebc:	57                   	push   %edi
451ebd:	8b 7d 0c             	mov    0xc(%ebp),%edi
451ec0:	8b 0f                	mov    (%edi),%ecx
451ec2:	85 c9                	test   %ecx,%ecx
451ec4:	75 0a                	jne    0x451ed0
451ec6:	5f                   	pop    %edi
451ec7:	33 c0                	xor    %eax,%eax
451ec9:	33 d2                	xor    %edx,%edx
451ecb:	5b                   	pop    %ebx
451ecc:	8b e5                	mov    %ebp,%esp
451ece:	5d                   	pop    %ebp
451ecf:	c3                   	ret
451ed0:	56                   	push   %esi
451ed1:	8d 70 ff             	lea    -0x1(%eax),%esi
451ed4:	8d 41 ff             	lea    -0x1(%ecx),%eax
451ed7:	89 75 f8             	mov    %esi,-0x8(%ebp)
451eda:	85 c0                	test   %eax,%eax
451edc:	0f 85 2f 01 00 00    	jne    0x452011
451ee2:	8b 4f 04             	mov    0x4(%edi),%ecx
451ee5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
451ee8:	83 f9 01             	cmp    $0x1,%ecx
451eeb:	75 2f                	jne    0x451f1c
451eed:	8b 73 04             	mov    0x4(%ebx),%esi
451ef0:	8d 4b 04             	lea    0x4(%ebx),%ecx
451ef3:	50                   	push   %eax
451ef4:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
451efa:	89 03                	mov    %eax,(%ebx)
451efc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
451f02:	50                   	push   %eax
451f03:	68 cc 01 00 00       	push   $0x1cc
451f08:	51                   	push   %ecx
451f09:	e8 94 17 00 00       	call   0x4536a2
451f0e:	83 c4 10             	add    $0x10,%esp
451f11:	8b c6                	mov    %esi,%eax
451f13:	33 d2                	xor    %edx,%edx
451f15:	5e                   	pop    %esi
451f16:	5f                   	pop    %edi
451f17:	5b                   	pop    %ebx
451f18:	8b e5                	mov    %ebp,%esp
451f1a:	5d                   	pop    %ebp
451f1b:	c3                   	ret
451f1c:	85 f6                	test   %esi,%esi
451f1e:	75 49                	jne    0x451f69
451f20:	8b 73 04             	mov    0x4(%ebx),%esi
451f23:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
451f29:	6a 00                	push   $0x0
451f2b:	50                   	push   %eax
451f2c:	8d 7b 04             	lea    0x4(%ebx),%edi
451f2f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
451f36:	00 00 00
451f39:	68 cc 01 00 00       	push   $0x1cc
451f3e:	57                   	push   %edi
451f3f:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
451f45:	e8 58 17 00 00       	call   0x4536a2
451f4a:	33 d2                	xor    %edx,%edx
451f4c:	8b c6                	mov    %esi,%eax
451f4e:	f7 75 d8             	divl   -0x28(%ebp)
451f51:	83 c4 10             	add    $0x10,%esp
451f54:	33 c9                	xor    %ecx,%ecx
451f56:	3b ca                	cmp    %edx,%ecx
451f58:	89 17                	mov    %edx,(%edi)
451f5a:	1b c9                	sbb    %ecx,%ecx
451f5c:	5e                   	pop    %esi
451f5d:	f7 d9                	neg    %ecx
451f5f:	33 d2                	xor    %edx,%edx
451f61:	5f                   	pop    %edi
451f62:	89 0b                	mov    %ecx,(%ebx)
451f64:	5b                   	pop    %ebx
451f65:	8b e5                	mov    %ebp,%esp
451f67:	5d                   	pop    %ebp
451f68:	c3                   	ret
451f69:	33 ff                	xor    %edi,%edi
451f6b:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
451f72:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
451f79:	89 7d e8             	mov    %edi,-0x18(%ebp)
451f7c:	83 fe ff             	cmp    $0xffffffff,%esi
451f7f:	74 46                	je     0x451fc7
451f81:	8b 45 f8             	mov    -0x8(%ebp),%eax
451f84:	46                   	inc    %esi
451f85:	40                   	inc    %eax
451f86:	89 45 e0             	mov    %eax,-0x20(%ebp)
451f89:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
451f8c:	8d 64 24 00          	lea    0x0(%esp),%esp
451f90:	53                   	push   %ebx
451f91:	6a 00                	push   $0x0
451f93:	51                   	push   %ecx
451f94:	33 c0                	xor    %eax,%eax
451f96:	0b 06                	or     (%esi),%eax
451f98:	57                   	push   %edi
451f99:	50                   	push   %eax
451f9a:	e8 81 dd fe ff       	call   0x43fd20
451f9f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
451fa2:	5b                   	pop    %ebx
451fa3:	89 55 c0             	mov    %edx,-0x40(%ebp)
451fa6:	8d 76 fc             	lea    -0x4(%esi),%esi
451fa9:	33 d2                	xor    %edx,%edx
451fab:	8b f9                	mov    %ecx,%edi
451fad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
451fb0:	03 d0                	add    %eax,%edx
451fb2:	89 55 f4             	mov    %edx,-0xc(%ebp)
451fb5:	83 d1 00             	adc    $0x0,%ecx
451fb8:	83 6d e0 01          	subl   $0x1,-0x20(%ebp)
451fbc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
451fbf:	8b 4d d8             	mov    -0x28(%ebp),%ecx
451fc2:	75 cc                	jne    0x451f90
451fc4:	8b 5d 08             	mov    0x8(%ebp),%ebx
451fc7:	6a 00                	push   $0x0
451fc9:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
451fcf:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
451fd6:	00 00 00
451fd9:	50                   	push   %eax
451fda:	8d 73 04             	lea    0x4(%ebx),%esi
451fdd:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
451fe3:	68 cc 01 00 00       	push   $0x1cc
451fe8:	56                   	push   %esi
451fe9:	e8 b4 16 00 00       	call   0x4536a2
451fee:	8b 45 e8             	mov    -0x18(%ebp),%eax
451ff1:	83 c4 10             	add    $0x10,%esp
451ff4:	8b 55 fc             	mov    -0x4(%ebp),%edx
451ff7:	33 c9                	xor    %ecx,%ecx
451ff9:	3b c8                	cmp    %eax,%ecx
451ffb:	89 3e                	mov    %edi,(%esi)
451ffd:	89 43 08             	mov    %eax,0x8(%ebx)
452000:	8b 45 f4             	mov    -0xc(%ebp),%eax
452003:	1b c9                	sbb    %ecx,%ecx
452005:	f7 d9                	neg    %ecx
452007:	5e                   	pop    %esi
452008:	41                   	inc    %ecx
452009:	5f                   	pop    %edi
45200a:	89 0b                	mov    %ecx,(%ebx)
45200c:	5b                   	pop    %ebx
45200d:	8b e5                	mov    %ebp,%esp
45200f:	5d                   	pop    %ebp
452010:	c3                   	ret
452011:	3b c6                	cmp    %esi,%eax
452013:	77 47                	ja     0x45205c
452015:	8b d6                	mov    %esi,%edx
452017:	8d 48 01             	lea    0x1(%eax),%ecx
45201a:	2b d0                	sub    %eax,%edx
45201c:	89 4d c8             	mov    %ecx,-0x38(%ebp)
45201f:	8b ce                	mov    %esi,%ecx
452021:	3b f2                	cmp    %edx,%esi
452023:	7c 32                	jl     0x452057
452025:	8b c1                	mov    %ecx,%eax
452027:	46                   	inc    %esi
452028:	2b c2                	sub    %edx,%eax
45202a:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
45202d:	8d 3c 87             	lea    (%edi,%eax,4),%edi
452030:	83 c7 04             	add    $0x4,%edi
452033:	8b 07                	mov    (%edi),%eax
452035:	3b 06                	cmp    (%esi),%eax
452037:	75 0d                	jne    0x452046
452039:	49                   	dec    %ecx
45203a:	83 ef 04             	sub    $0x4,%edi
45203d:	83 ee 04             	sub    $0x4,%esi
452040:	3b ca                	cmp    %edx,%ecx
452042:	7d ef                	jge    0x452033
452044:	eb 11                	jmp    0x452057
452046:	8b 75 0c             	mov    0xc(%ebp),%esi
452049:	8b c1                	mov    %ecx,%eax
45204b:	2b c2                	sub    %edx,%eax
45204d:	8b 44 86 04          	mov    0x4(%esi,%eax,4),%eax
452051:	3b 44 8b 04          	cmp    0x4(%ebx,%ecx,4),%eax
452055:	73 01                	jae    0x452058
452057:	42                   	inc    %edx
452058:	85 d2                	test   %edx,%edx
45205a:	75 0b                	jne    0x452067
45205c:	5e                   	pop    %esi
45205d:	5f                   	pop    %edi
45205e:	33 c0                	xor    %eax,%eax
452060:	33 d2                	xor    %edx,%edx
452062:	5b                   	pop    %ebx
452063:	8b e5                	mov    %ebp,%esp
452065:	5d                   	pop    %ebp
452066:	c3                   	ret
452067:	8b 7d c8             	mov    -0x38(%ebp),%edi
45206a:	8b 45 0c             	mov    0xc(%ebp),%eax
45206d:	8b 34 b8             	mov    (%eax,%edi,4),%esi
452070:	8b 44 b8 fc          	mov    -0x4(%eax,%edi,4),%eax
452074:	89 45 e4             	mov    %eax,-0x1c(%ebp)
452077:	0f bd c6             	bsr    %esi,%eax
45207a:	89 75 cc             	mov    %esi,-0x34(%ebp)
45207d:	74 09                	je     0x452088
45207f:	b9 1f 00 00 00       	mov    $0x1f,%ecx
452084:	2b c8                	sub    %eax,%ecx
452086:	eb 05                	jmp    0x45208d
452088:	b9 20 00 00 00       	mov    $0x20,%ecx
45208d:	b8 20 00 00 00       	mov    $0x20,%eax
452092:	89 4d dc             	mov    %ecx,-0x24(%ebp)
452095:	2b c1                	sub    %ecx,%eax
452097:	89 45 d0             	mov    %eax,-0x30(%ebp)
45209a:	85 c9                	test   %ecx,%ecx
45209c:	74 29                	je     0x4520c7
45209e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4520a1:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4520a4:	d3 e8                	shr    %cl,%eax
4520a6:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4520a9:	d3 65 e4             	shll   %cl,-0x1c(%ebp)
4520ac:	d3 e6                	shl    %cl,%esi
4520ae:	0b f0                	or     %eax,%esi
4520b0:	89 75 cc             	mov    %esi,-0x34(%ebp)
4520b3:	83 ff 02             	cmp    $0x2,%edi
4520b6:	76 0f                	jbe    0x4520c7
4520b8:	8b 75 0c             	mov    0xc(%ebp),%esi
4520bb:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4520be:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
4520c2:	d3 e8                	shr    %cl,%eax
4520c4:	09 45 e4             	or     %eax,-0x1c(%ebp)
4520c7:	33 f6                	xor    %esi,%esi
4520c9:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
4520d0:	83 c2 ff             	add    $0xffffffff,%edx
4520d3:	89 55 e0             	mov    %edx,-0x20(%ebp)
4520d6:	0f 88 2e 02 00 00    	js     0x45230a
4520dc:	8d 4b 04             	lea    0x4(%ebx),%ecx
4520df:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
4520e2:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4520e5:	8d 04 3a             	lea    (%edx,%edi,1),%eax
4520e8:	8d 4b fc             	lea    -0x4(%ebx),%ecx
4520eb:	89 45 f4             	mov    %eax,-0xc(%ebp)
4520ee:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
4520f1:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
4520f4:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4520f7:	77 05                	ja     0x4520fe
4520f9:	8b 41 08             	mov    0x8(%ecx),%eax
4520fc:	eb 02                	jmp    0x452100
4520fe:	33 c0                	xor    %eax,%eax
452100:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
452104:	8b 51 04             	mov    0x4(%ecx),%edx
452107:	8b 09                	mov    (%ecx),%ecx
452109:	89 45 c4             	mov    %eax,-0x3c(%ebp)
45210c:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
452113:	89 45 fc             	mov    %eax,-0x4(%ebp)
452116:	89 4d ec             	mov    %ecx,-0x14(%ebp)
452119:	76 49                	jbe    0x452164
45211b:	8b f9                	mov    %ecx,%edi
45211d:	8b c2                	mov    %edx,%eax
45211f:	8b 4d d0             	mov    -0x30(%ebp),%ecx
452122:	33 f6                	xor    %esi,%esi
452124:	8b 55 fc             	mov    -0x4(%ebp),%edx
452127:	d3 ef                	shr    %cl,%edi
452129:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45212c:	e8 cf db fe ff       	call   0x43fd00
452131:	8b 4d dc             	mov    -0x24(%ebp),%ecx
452134:	0b f2                	or     %edx,%esi
452136:	0b f8                	or     %eax,%edi