4c3cf3:	83 ec 38             	sub    $0x38,%esp
4c3cf6:	53                   	push   %ebx
4c3cf7:	56                   	push   %esi
4c3cf8:	57                   	push   %edi
4c3cf9:	8d 79 10             	lea    0x10(%ecx),%edi
4c3cfc:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4c3cff:	8b cf                	mov    %edi,%ecx
4c3d01:	e8 ba a2 f9 ff       	call   0x45dfc0
4c3d06:	8b cf                	mov    %edi,%ecx
4c3d08:	8b d8                	mov    %eax,%ebx
4c3d0a:	e8 b1 a2 f9 ff       	call   0x45dfc0
4c3d0f:	33 f6                	xor    %esi,%esi
4c3d11:	89 45 f0             	mov    %eax,-0x10(%ebp)
4c3d14:	85 c0                	test   %eax,%eax
4c3d16:	7e 29                	jle    0x4c3d41
4c3d18:	56                   	push   %esi
4c3d19:	8b cf                	mov    %edi,%ecx
4c3d1b:	e8 c0 95 f9 ff       	call   0x45d2e0
4c3d20:	46                   	inc    %esi
4c3d21:	8b 48 10             	mov    0x10(%eax),%ecx
4c3d24:	8b c1                	mov    %ecx,%eax
4c3d26:	83 c8 01             	or     $0x1,%eax
4c3d29:	0f bd c0             	bsr    %eax,%eax
4c3d2c:	89 45 e8             	mov    %eax,-0x18(%ebp)
4c3d2f:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c3d32:	83 c0 49             	add    $0x49,%eax
4c3d35:	c1 e8 06             	shr    $0x6,%eax
4c3d38:	03 c1                	add    %ecx,%eax
4c3d3a:	03 d8                	add    %eax,%ebx
4c3d3c:	3b 75 f0             	cmp    -0x10(%ebp),%esi
4c3d3f:	7c d7                	jl     0x4c3d18
4c3d41:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c3d44:	8b 50 24             	mov    0x24(%eax),%edx
4c3d47:	03 da                	add    %edx,%ebx
4c3d49:	8b 48 2c             	mov    0x2c(%eax),%ecx
4c3d4c:	85 c9                	test   %ecx,%ecx
4c3d4e:	74 0a                	je     0x4c3d5a
4c3d50:	83 c1 04             	add    $0x4,%ecx
4c3d53:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4c3d56:	8b f1                	mov    %ecx,%esi
4c3d58:	eb 0b                	jmp    0x4c3d65
4c3d5a:	33 f6                	xor    %esi,%esi
4c3d5c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4c3d63:	33 c9                	xor    %ecx,%ecx
4c3d65:	8d 3c 91             	lea    (%ecx,%edx,4),%edi
4c3d68:	39 7d f4             	cmp    %edi,-0xc(%ebp)
4c3d6b:	74 2c                	je     0x4c3d99
4c3d6d:	0f 1f 00             	nopl   (%eax)
4c3d70:	8b 0e                	mov    (%esi),%ecx
4c3d72:	e8 e9 1c 00 00       	call   0x4c5a60
4c3d77:	8b c8                	mov    %eax,%ecx
4c3d79:	83 c6 04             	add    $0x4,%esi
4c3d7c:	83 c9 01             	or     $0x1,%ecx
4c3d7f:	0f bd c9             	bsr    %ecx,%ecx
4c3d82:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4c3d85:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4c3d88:	83 c1 49             	add    $0x49,%ecx
4c3d8b:	c1 e9 06             	shr    $0x6,%ecx
4c3d8e:	03 c8                	add    %eax,%ecx
4c3d90:	03 d9                	add    %ecx,%ebx
4c3d92:	3b f7                	cmp    %edi,%esi
4c3d94:	75 da                	jne    0x4c3d70
4c3d96:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c3d99:	8b 50 34             	mov    0x34(%eax),%edx
4c3d9c:	03 da                	add    %edx,%ebx
4c3d9e:	8b 48 3c             	mov    0x3c(%eax),%ecx
4c3da1:	85 c9                	test   %ecx,%ecx
4c3da3:	74 0a                	je     0x4c3daf
4c3da5:	83 c1 04             	add    $0x4,%ecx
4c3da8:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4c3dab:	8b f1                	mov    %ecx,%esi
4c3dad:	eb 0b                	jmp    0x4c3dba
4c3daf:	33 f6                	xor    %esi,%esi
4c3db1:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4c3db8:	33 c9                	xor    %ecx,%ecx
4c3dba:	8d 3c 91             	lea    (%ecx,%edx,4),%edi
4c3dbd:	39 7d f4             	cmp    %edi,-0xc(%ebp)
4c3dc0:	74 29                	je     0x4c3deb
4c3dc2:	8b 0e                	mov    (%esi),%ecx
4c3dc4:	e8 f7 67 ff ff       	call   0x4ba5c0
4c3dc9:	8b c8                	mov    %eax,%ecx
4c3dcb:	83 c6 04             	add    $0x4,%esi
4c3dce:	83 c9 01             	or     $0x1,%ecx
4c3dd1:	0f bd c9             	bsr    %ecx,%ecx
4c3dd4:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4c3dd7:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4c3dda:	83 c1 49             	add    $0x49,%ecx
4c3ddd:	c1 e9 06             	shr    $0x6,%ecx
4c3de0:	03 c8                	add    %eax,%ecx
4c3de2:	03 d9                	add    %ecx,%ebx
4c3de4:	3b f7                	cmp    %edi,%esi
4c3de6:	75 da                	jne    0x4c3dc2
4c3de8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c3deb:	8b 50 44             	mov    0x44(%eax),%edx
4c3dee:	03 da                	add    %edx,%ebx
4c3df0:	8b 48 4c             	mov    0x4c(%eax),%ecx
4c3df3:	85 c9                	test   %ecx,%ecx
4c3df5:	74 0a                	je     0x4c3e01
4c3df7:	83 c1 04             	add    $0x4,%ecx
4c3dfa:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4c3dfd:	8b f1                	mov    %ecx,%esi
4c3dff:	eb 0b                	jmp    0x4c3e0c
4c3e01:	33 f6                	xor    %esi,%esi
4c3e03:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4c3e0a:	33 c9                	xor    %ecx,%ecx
4c3e0c:	8d 3c 91             	lea    (%ecx,%edx,4),%edi
4c3e0f:	39 7d f4             	cmp    %edi,-0xc(%ebp)
4c3e12:	74 29                	je     0x4c3e3d
4c3e14:	8b 0e                	mov    (%esi),%ecx
4c3e16:	e8 25 7b ff ff       	call   0x4bb940
4c3e1b:	8b c8                	mov    %eax,%ecx
4c3e1d:	83 c6 04             	add    $0x4,%esi
4c3e20:	83 c9 01             	or     $0x1,%ecx
4c3e23:	0f bd c9             	bsr    %ecx,%ecx
4c3e26:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4c3e29:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4c3e2c:	83 c1 49             	add    $0x49,%ecx
4c3e2f:	c1 e9 06             	shr    $0x6,%ecx
4c3e32:	03 c8                	add    %eax,%ecx
4c3e34:	03 d9                	add    %ecx,%ebx
4c3e36:	3b f7                	cmp    %edi,%esi
4c3e38:	75 da                	jne    0x4c3e14
4c3e3a:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c3e3d:	8b 50 54             	mov    0x54(%eax),%edx
4c3e40:	03 da                	add    %edx,%ebx
4c3e42:	8b 48 5c             	mov    0x5c(%eax),%ecx
4c3e45:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3e48:	85 c9                	test   %ecx,%ecx
4c3e4a:	74 0a                	je     0x4c3e56
4c3e4c:	83 c1 04             	add    $0x4,%ecx
4c3e4f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4c3e52:	8b f1                	mov    %ecx,%esi
4c3e54:	eb 0b                	jmp    0x4c3e61
4c3e56:	33 f6                	xor    %esi,%esi
4c3e58:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4c3e5f:	33 c9                	xor    %ecx,%ecx
4c3e61:	8d 3c 91             	lea    (%ecx,%edx,4),%edi
4c3e64:	39 7d f4             	cmp    %edi,-0xc(%ebp)
4c3e67:	74 33                	je     0x4c3e9c
4c3e69:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4c3e70:	8b 0e                	mov    (%esi),%ecx
4c3e72:	e8 59 4e ff ff       	call   0x4b8cd0
4c3e77:	8b c8                	mov    %eax,%ecx
4c3e79:	83 c6 04             	add    $0x4,%esi
4c3e7c:	83 c9 01             	or     $0x1,%ecx
4c3e7f:	0f bd c9             	bsr    %ecx,%ecx
4c3e82:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4c3e85:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4c3e88:	83 c1 49             	add    $0x49,%ecx
4c3e8b:	c1 e9 06             	shr    $0x6,%ecx
4c3e8e:	03 c8                	add    %eax,%ecx
4c3e90:	03 d9                	add    %ecx,%ebx
4c3e92:	3b f7                	cmp    %edi,%esi
4c3e94:	75 da                	jne    0x4c3e70
4c3e96:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c3e99:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3e9c:	8d 70 60             	lea    0x60(%eax),%esi
4c3e9f:	56                   	push   %esi
4c3ea0:	e8 9b 71 fe ff       	call   0x4ab040
4c3ea5:	83 c4 04             	add    $0x4,%esp
4c3ea8:	89 45 f0             	mov    %eax,-0x10(%ebp)
4c3eab:	8b ce                	mov    %esi,%ecx
4c3ead:	e8 fe a0 f9 ff       	call   0x45dfb0
4c3eb2:	8b 75 f8             	mov    -0x8(%ebp),%esi
4c3eb5:	8b d8                	mov    %eax,%ebx
4c3eb7:	83 c6 6c             	add    $0x6c,%esi
4c3eba:	56                   	push   %esi
4c3ebb:	e8 80 71 fe ff       	call   0x4ab040
4c3ec0:	83 c4 04             	add    $0x4,%esp
4c3ec3:	8b ce                	mov    %esi,%ecx
4c3ec5:	8b f8                	mov    %eax,%edi
4c3ec7:	e8 e4 a0 f9 ff       	call   0x45dfb0
4c3ecc:	8b 75 f8             	mov    -0x8(%ebp),%esi
4c3ecf:	03 c3                	add    %ebx,%eax
4c3ed1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4c3ed4:	03 c7                	add    %edi,%eax
4c3ed6:	03 45 f0             	add    -0x10(%ebp),%eax
4c3ed9:	03 d8                	add    %eax,%ebx
4c3edb:	8b 56 08             	mov    0x8(%esi),%edx
4c3ede:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3ee1:	89 55 f0             	mov    %edx,-0x10(%ebp)
4c3ee4:	f6 c2 1f             	test   $0x1f,%dl
4c3ee7:	0f 84 55 01 00 00    	je     0x4c4042
4c3eed:	f6 c2 01             	test   $0x1,%dl
4c3ef0:	74 25                	je     0x4c3f17
4c3ef2:	8b 46 78             	mov    0x78(%esi),%eax
4c3ef5:	43                   	inc    %ebx
4c3ef6:	83 e0 fe             	and    $0xfffffffe,%eax
4c3ef9:	8b 48 10             	mov    0x10(%eax),%ecx
4c3efc:	8b c1                	mov    %ecx,%eax
4c3efe:	83 c8 01             	or     $0x1,%eax
4c3f01:	0f bd c0             	bsr    %eax,%eax
4c3f04:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4c3f07:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c3f0a:	83 c0 49             	add    $0x49,%eax
4c3f0d:	c1 e8 06             	shr    $0x6,%eax
4c3f10:	03 c1                	add    %ecx,%eax
4c3f12:	03 d8                	add    %eax,%ebx
4c3f14:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3f17:	f6 c2 02             	test   $0x2,%dl
4c3f1a:	74 25                	je     0x4c3f41
4c3f1c:	8b 46 7c             	mov    0x7c(%esi),%eax
4c3f1f:	83 e0 fe             	and    $0xfffffffe,%eax
4c3f22:	8b 48 10             	mov    0x10(%eax),%ecx
4c3f25:	8b c1                	mov    %ecx,%eax
4c3f27:	83 c8 01             	or     $0x1,%eax
4c3f2a:	0f bd c0             	bsr    %eax,%eax
4c3f2d:	89 45 d0             	mov    %eax,-0x30(%ebp)
4c3f30:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c3f33:	83 c0 49             	add    $0x49,%eax
4c3f36:	c1 e8 06             	shr    $0x6,%eax
4c3f39:	40                   	inc    %eax
4c3f3a:	03 c1                	add    %ecx,%eax
4c3f3c:	03 d8                	add    %eax,%ebx
4c3f3e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3f41:	f6 c2 04             	test   $0x4,%dl
4c3f44:	74 28                	je     0x4c3f6e
4c3f46:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
4c3f4c:	83 e0 fe             	and    $0xfffffffe,%eax
4c3f4f:	8b 48 10             	mov    0x10(%eax),%ecx
4c3f52:	8b c1                	mov    %ecx,%eax
4c3f54:	83 c8 01             	or     $0x1,%eax
4c3f57:	0f bd c0             	bsr    %eax,%eax
4c3f5a:	89 45 cc             	mov    %eax,-0x34(%ebp)
4c3f5d:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c3f60:	83 c0 49             	add    $0x49,%eax
4c3f63:	c1 e8 06             	shr    $0x6,%eax
4c3f66:	40                   	inc    %eax
4c3f67:	03 c1                	add    %ecx,%eax
4c3f69:	03 d8                	add    %eax,%ebx
4c3f6b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3f6e:	f6 c2 08             	test   $0x8,%dl
4c3f71:	74 2a                	je     0x4c3f9d
4c3f73:	8b 8e 84 00 00 00    	mov    0x84(%esi),%ecx
4c3f79:	e8 52 8c ff ff       	call   0x4bcbd0
4c3f7e:	8b c8                	mov    %eax,%ecx
4c3f80:	8b 55 f0             	mov    -0x10(%ebp),%edx
4c3f83:	83 c9 01             	or     $0x1,%ecx
4c3f86:	0f bd c9             	bsr    %ecx,%ecx
4c3f89:	89 4d c8             	mov    %ecx,-0x38(%ebp)
4c3f8c:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4c3f8f:	83 c1 49             	add    $0x49,%ecx
4c3f92:	c1 e9 06             	shr    $0x6,%ecx
4c3f95:	41                   	inc    %ecx
4c3f96:	03 c8                	add    %eax,%ecx
4c3f98:	03 d9                	add    %ecx,%ebx
4c3f9a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4c3f9d:	f6 c2 10             	test   $0x10,%dl
4c3fa0:	0f 84 9c 00 00 00    	je     0x4c4042
4c3fa6:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
4c3fac:	89 45 ec             	mov    %eax,-0x14(%ebp)
4c3faf:	8b 50 14             	mov    0x14(%eax),%edx
4c3fb2:	8b 48 0c             	mov    0xc(%eax),%ecx
4c3fb5:	85 d2                	test   %edx,%edx
4c3fb7:	74 0a                	je     0x4c3fc3
4c3fb9:	83 c2 04             	add    $0x4,%edx
4c3fbc:	89 55 f0             	mov    %edx,-0x10(%ebp)
4c3fbf:	8b f2                	mov    %edx,%esi
4c3fc1:	eb 0b                	jmp    0x4c3fce
4c3fc3:	33 f6                	xor    %esi,%esi
4c3fc5:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4c3fcc:	33 d2                	xor    %edx,%edx
4c3fce:	8d 3c 8a             	lea    (%edx,%ecx,4),%edi
4c3fd1:	39 7d f0             	cmp    %edi,-0x10(%ebp)
4c3fd4:	74 34                	je     0x4c400a
4c3fd6:	8b d9                	mov    %ecx,%ebx
4c3fd8:	8b 0e                	mov    (%esi),%ecx
4c3fda:	e8 81 dc ff ff       	call   0x4c1c60
4c3fdf:	8b c8                	mov    %eax,%ecx
4c3fe1:	83 c6 04             	add    $0x4,%esi
4c3fe4:	83 c9 01             	or     $0x1,%ecx
4c3fe7:	0f bd c9             	bsr    %ecx,%ecx
4c3fea:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4c3fed:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4c3ff0:	83 c1 49             	add    $0x49,%ecx
4c3ff3:	c1 e9 06             	shr    $0x6,%ecx
4c3ff6:	03 c8                	add    %eax,%ecx
4c3ff8:	03 d9                	add    %ecx,%ebx
4c3ffa:	3b f7                	cmp    %edi,%esi
4c3ffc:	75 da                	jne    0x4c3fd8
4c3ffe:	8b 45 ec             	mov    -0x14(%ebp),%eax
4c4001:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4c4004:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4c4007:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4c400a:	8d 50 04             	lea    0x4(%eax),%edx
4c400d:	83 c0 18             	add    $0x18,%eax
4c4010:	f6 02 01             	testb  $0x1,(%edx)
4c4013:	74 0f                	je     0x4c4024
4c4015:	50                   	push   %eax
4c4016:	51                   	push   %ecx
4c4017:	52                   	push   %edx
4c4018:	e8 93 b4 fa ff       	call   0x46f4b0
4c401d:	83 c4 0c             	add    $0xc,%esp
4c4020:	8b c8                	mov    %eax,%ecx
4c4022:	eb 02                	jmp    0x4c4026
4c4024:	89 08                	mov    %ecx,(%eax)
4c4026:	8b c1                	mov    %ecx,%eax
4c4028:	8b 75 f8             	mov    -0x8(%ebp),%esi
4c402b:	83 c8 01             	or     $0x1,%eax
4c402e:	43                   	inc    %ebx
4c402f:	0f bd c0             	bsr    %eax,%eax
4c4032:	89 45 ec             	mov    %eax,-0x14(%ebp)
4c4035:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c4038:	83 c0 49             	add    $0x49,%eax
4c403b:	c1 e8 06             	shr    $0x6,%eax
4c403e:	03 c1                	add    %ecx,%eax
4c4040:	03 d8                	add    %eax,%ebx
4c4042:	8d 46 04             	lea    0x4(%esi),%eax
4c4045:	83 c6 0c             	add    $0xc,%esi
4c4048:	f6 00 01             	testb  $0x1,(%eax)
4c404b:	74 12                	je     0x4c405f
4c404d:	56                   	push   %esi
4c404e:	53                   	push   %ebx
4c404f:	50                   	push   %eax
4c4050:	e8 5b b4 fa ff       	call   0x46f4b0
4c4055:	83 c4 0c             	add    $0xc,%esp
4c4058:	5f                   	pop    %edi
4c4059:	5e                   	pop    %esi
4c405a:	5b                   	pop    %ebx
4c405b:	8b e5                	mov    %ebp,%esp
4c405d:	5d                   	pop    %ebp
4c405e:	c3                   	ret
4c405f:	5f                   	pop    %edi
4c4060:	89 1e                	mov    %ebx,(%esi)
4c4062:	8b c3                	mov    %ebx,%eax
4c4064:	5e                   	pop    %esi
4c4065:	5b                   	pop    %ebx
4c4066:	8b e5                	mov    %ebp,%esp
4c4068:	5d                   	pop    %ebp
4c4069:	c3                   	ret
4c406a:	cc                   	int3
4c406b:	cc                   	int3
4c406c:	cc                   	int3
4c406d:	cc                   	int3
4c406e:	cc                   	int3
4c406f:	cc                   	int3
4c4070:	55                   	push   %ebp
4c4071:	8b ec                	mov    %esp,%ebp
4c4073:	83 ec 54             	sub    $0x54,%esp
4c4076:	53                   	push   %ebx
4c4077:	56                   	push   %esi
4c4078:	8b 75 08             	mov    0x8(%ebp),%esi
4c407b:	57                   	push   %edi
4c407c:	8b 7d 0c             	mov    0xc(%ebp),%edi
4c407f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4c4082:	3b 37                	cmp    (%edi),%esi
4c4084:	72 2a                	jb     0x4c40b0
4c4086:	8b c6                	mov    %esi,%eax
4c4088:	2b 47 04             	sub    0x4(%edi),%eax
4c408b:	3b 47 10             	cmp    0x10(%edi),%eax