412d11:	8b d0                	mov    %eax,%edx
412d13:	8b d8                	mov    %eax,%ebx
412d15:	2b d6                	sub    %esi,%edx
412d17:	3b da                	cmp    %edx,%ebx
412d19:	7c 1f                	jl     0x412d3a
412d1b:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
412d1e:	83 c1 04             	add    $0x4,%ecx
412d21:	46                   	inc    %esi
412d22:	8d 34 b7             	lea    (%edi,%esi,4),%esi
412d25:	8b 3e                	mov    (%esi),%edi
412d27:	3b 39                	cmp    (%ecx),%edi
412d29:	75 0d                	jne    0x412d38
412d2b:	48                   	dec    %eax
412d2c:	83 ee 04             	sub    $0x4,%esi
412d2f:	83 e9 04             	sub    $0x4,%ecx
412d32:	3b c2                	cmp    %edx,%eax
412d34:	7d ef                	jge    0x412d25
412d36:	eb 02                	jmp    0x412d3a
412d38:	73 01                	jae    0x412d3b
412d3a:	42                   	inc    %edx
412d3b:	85 d2                	test   %edx,%edx
412d3d:	0f 84 ed 02 00 00    	je     0x413030
412d43:	8b 7d ec             	mov    -0x14(%ebp),%edi
412d46:	8b 75 0c             	mov    0xc(%ebp),%esi
412d49:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
412d4d:	8b 1c be             	mov    (%esi,%edi,4),%ebx
412d50:	89 45 e0             	mov    %eax,-0x20(%ebp)
412d53:	0f bd c3             	bsr    %ebx,%eax
412d56:	89 5d d0             	mov    %ebx,-0x30(%ebp)
412d59:	74 09                	je     0x412d64
412d5b:	b9 1f 00 00 00       	mov    $0x1f,%ecx
412d60:	2b c8                	sub    %eax,%ecx
412d62:	eb 05                	jmp    0x412d69
412d64:	b9 20 00 00 00       	mov    $0x20,%ecx
412d69:	b8 20 00 00 00       	mov    $0x20,%eax
412d6e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
412d71:	2b c1                	sub    %ecx,%eax
412d73:	89 45 d4             	mov    %eax,-0x2c(%ebp)
412d76:	85 c9                	test   %ecx,%ecx
412d78:	74 2d                	je     0x412da7
412d7a:	8b 45 e0             	mov    -0x20(%ebp),%eax
412d7d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
412d80:	d3 e8                	shr    %cl,%eax
412d82:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
412d85:	d3 e3                	shl    %cl,%ebx
412d87:	0b d8                	or     %eax,%ebx
412d89:	89 5d d0             	mov    %ebx,-0x30(%ebp)
412d8c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
412d8f:	d3 e3                	shl    %cl,%ebx
412d91:	89 5d e0             	mov    %ebx,-0x20(%ebp)
412d94:	83 ff 02             	cmp    $0x2,%edi
412d97:	76 0e                	jbe    0x412da7
412d99:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
412d9d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
412da0:	d3 e8                	shr    %cl,%eax
412da2:	0b d8                	or     %eax,%ebx
412da4:	89 5d e0             	mov    %ebx,-0x20(%ebp)
412da7:	8d 5a ff             	lea    -0x1(%edx),%ebx
412daa:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
412db1:	33 f6                	xor    %esi,%esi
412db3:	89 5d b0             	mov    %ebx,-0x50(%ebp)
412db6:	85 db                	test   %ebx,%ebx
412db8:	0f 88 31 02 00 00    	js     0x412fef
412dbe:	8b 55 08             	mov    0x8(%ebp),%edx
412dc1:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
412dc4:	89 45 c8             	mov    %eax,-0x38(%ebp)
412dc7:	8d 4a 04             	lea    0x4(%edx),%ecx
412dca:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
412dcd:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
412dd0:	8d 4a fc             	lea    -0x4(%edx),%ecx
412dd3:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
412dd6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
412dd9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
412de0:	3b 45 f4             	cmp    -0xc(%ebp),%eax
412de3:	77 05                	ja     0x412dea
412de5:	8b 51 08             	mov    0x8(%ecx),%edx
412de8:	eb 02                	jmp    0x412dec
412dea:	33 d2                	xor    %edx,%edx
412dec:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
412df0:	8b 41 04             	mov    0x4(%ecx),%eax
412df3:	8b 19                	mov    (%ecx),%ebx
412df5:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
412dfc:	89 55 b8             	mov    %edx,-0x48(%ebp)
412dff:	89 45 fc             	mov    %eax,-0x4(%ebp)
412e02:	89 55 dc             	mov    %edx,-0x24(%ebp)
412e05:	89 5d f8             	mov    %ebx,-0x8(%ebp)
412e08:	76 3c                	jbe    0x412e46
412e0a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
412e0d:	8b fb                	mov    %ebx,%edi
412e0f:	d3 ef                	shr    %cl,%edi
412e11:	33 f6                	xor    %esi,%esi
412e13:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
412e16:	e8 85 4e 00 00       	call   0x417ca0
412e1b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
412e1e:	0b c7                	or     %edi,%eax
412e20:	0b d6                	or     %esi,%edx
412e22:	d3 e3                	shl    %cl,%ebx
412e24:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
412e28:	89 45 fc             	mov    %eax,-0x4(%ebp)
412e2b:	89 55 dc             	mov    %edx,-0x24(%ebp)
412e2e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
412e31:	72 13                	jb     0x412e46
412e33:	8b 45 e8             	mov    -0x18(%ebp),%eax
412e36:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
412e39:	8b 40 fc             	mov    -0x4(%eax),%eax
412e3c:	d3 e8                	shr    %cl,%eax
412e3e:	0b d8                	or     %eax,%ebx
412e40:	8b 45 fc             	mov    -0x4(%ebp),%eax
412e43:	89 5d f8             	mov    %ebx,-0x8(%ebp)
412e46:	8b 75 d0             	mov    -0x30(%ebp),%esi
412e49:	6a 00                	push   $0x0
412e4b:	56                   	push   %esi
412e4c:	52                   	push   %edx
412e4d:	50                   	push   %eax
412e4e:	e8 ad 4b 00 00       	call   0x417a00
412e53:	6a 00                	push   $0x0
412e55:	56                   	push   %esi
412e56:	ff 75 dc             	push   -0x24(%ebp)
412e59:	8b d8                	mov    %eax,%ebx
412e5b:	89 55 f0             	mov    %edx,-0x10(%ebp)
412e5e:	ff 75 fc             	push   -0x4(%ebp)
412e61:	89 5d cc             	mov    %ebx,-0x34(%ebp)
412e64:	89 5d bc             	mov    %ebx,-0x44(%ebp)
412e67:	89 55 c0             	mov    %edx,-0x40(%ebp)
412e6a:	e8 01 4c 00 00       	call   0x417a70
412e6f:	8b f8                	mov    %eax,%edi
412e71:	33 f6                	xor    %esi,%esi
412e73:	8b 45 f0             	mov    -0x10(%ebp),%eax
412e76:	89 75 fc             	mov    %esi,-0x4(%ebp)
412e79:	85 c0                	test   %eax,%eax
412e7b:	75 05                	jne    0x412e82
412e7d:	83 fb ff             	cmp    $0xffffffff,%ebx
412e80:	76 2a                	jbe    0x412eac
412e82:	6a 00                	push   $0x0
412e84:	ff 75 d0             	push   -0x30(%ebp)
412e87:	83 c3 01             	add    $0x1,%ebx
412e8a:	83 d0 ff             	adc    $0xffffffff,%eax
412e8d:	50                   	push   %eax
412e8e:	53                   	push   %ebx
412e8f:	e8 5c 4c 00 00       	call   0x417af0
412e94:	03 f8                	add    %eax,%edi
412e96:	13 f2                	adc    %edx,%esi
412e98:	83 cb ff             	or     $0xffffffff,%ebx
412e9b:	33 c0                	xor    %eax,%eax
412e9d:	89 75 fc             	mov    %esi,-0x4(%ebp)
412ea0:	89 5d cc             	mov    %ebx,-0x34(%ebp)
412ea3:	89 5d bc             	mov    %ebx,-0x44(%ebp)
412ea6:	89 45 f0             	mov    %eax,-0x10(%ebp)
412ea9:	89 45 c0             	mov    %eax,-0x40(%ebp)
412eac:	85 f6                	test   %esi,%esi
412eae:	77 50                	ja     0x412f00
412eb0:	72 05                	jb     0x412eb7
412eb2:	83 ff ff             	cmp    $0xffffffff,%edi
412eb5:	77 49                	ja     0x412f00
412eb7:	50                   	push   %eax
412eb8:	53                   	push   %ebx
412eb9:	33 c9                	xor    %ecx,%ecx
412ebb:	8b f7                	mov    %edi,%esi
412ebd:	0b 4d f8             	or     -0x8(%ebp),%ecx
412ec0:	6a 00                	push   $0x0
412ec2:	ff 75 e0             	push   -0x20(%ebp)
412ec5:	89 4d dc             	mov    %ecx,-0x24(%ebp)
412ec8:	e8 23 4c 00 00       	call   0x417af0
412ecd:	3b d6                	cmp    %esi,%edx
412ecf:	72 29                	jb     0x412efa
412ed1:	77 05                	ja     0x412ed8
412ed3:	3b 45 dc             	cmp    -0x24(%ebp),%eax
412ed6:	76 22                	jbe    0x412efa
412ed8:	8b 45 f0             	mov    -0x10(%ebp),%eax
412edb:	83 c3 ff             	add    $0xffffffff,%ebx
412ede:	89 5d bc             	mov    %ebx,-0x44(%ebp)
412ee1:	83 d0 ff             	adc    $0xffffffff,%eax
412ee4:	03 7d d0             	add    -0x30(%ebp),%edi
412ee7:	89 45 f0             	mov    %eax,-0x10(%ebp)
412eea:	83 55 fc 00          	adcl   $0x0,-0x4(%ebp)
412eee:	89 45 c0             	mov    %eax,-0x40(%ebp)
412ef1:	75 0a                	jne    0x412efd
412ef3:	83 ff ff             	cmp    $0xffffffff,%edi
412ef6:	76 bf                	jbe    0x412eb7
412ef8:	eb 03                	jmp    0x412efd
412efa:	8b 45 f0             	mov    -0x10(%ebp),%eax
412efd:	89 5d cc             	mov    %ebx,-0x34(%ebp)
412f00:	85 c0                	test   %eax,%eax
412f02:	75 08                	jne    0x412f0c
412f04:	85 db                	test   %ebx,%ebx
412f06:	0f 84 af 00 00 00    	je     0x412fbb
412f0c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
412f0f:	33 ff                	xor    %edi,%edi
412f11:	8b 45 0c             	mov    0xc(%ebp),%eax
412f14:	33 f6                	xor    %esi,%esi
412f16:	85 c9                	test   %ecx,%ecx
412f18:	74 55                	je     0x412f6f
412f1a:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
412f1d:	83 c0 04             	add    $0x4,%eax
412f20:	89 45 f8             	mov    %eax,-0x8(%ebp)
412f23:	89 4d fc             	mov    %ecx,-0x4(%ebp)
412f26:	8b 00                	mov    (%eax),%eax
412f28:	89 45 dc             	mov    %eax,-0x24(%ebp)
412f2b:	8b 45 c0             	mov    -0x40(%ebp),%eax
412f2e:	f7 65 dc             	mull   -0x24(%ebp)
412f31:	8b c8                	mov    %eax,%ecx
412f33:	8b 45 bc             	mov    -0x44(%ebp),%eax
412f36:	f7 65 dc             	mull   -0x24(%ebp)
412f39:	03 d1                	add    %ecx,%edx
412f3b:	03 f8                	add    %eax,%edi
412f3d:	8b 03                	mov    (%ebx),%eax
412f3f:	8b cf                	mov    %edi,%ecx
412f41:	13 f2                	adc    %edx,%esi
412f43:	8b fe                	mov    %esi,%edi
412f45:	33 f6                	xor    %esi,%esi
412f47:	3b c1                	cmp    %ecx,%eax
412f49:	73 05                	jae    0x412f50
412f4b:	83 c7 01             	add    $0x1,%edi
412f4e:	13 f6                	adc    %esi,%esi
412f50:	2b c1                	sub    %ecx,%eax
412f52:	89 03                	mov    %eax,(%ebx)
412f54:	83 c3 04             	add    $0x4,%ebx
412f57:	8b 45 f8             	mov    -0x8(%ebp),%eax
412f5a:	83 c0 04             	add    $0x4,%eax
412f5d:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
412f61:	89 45 f8             	mov    %eax,-0x8(%ebp)
412f64:	75 c0                	jne    0x412f26
412f66:	8b 45 0c             	mov    0xc(%ebp),%eax
412f69:	8b 5d cc             	mov    -0x34(%ebp),%ebx
412f6c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
412f6f:	83 c0 04             	add    $0x4,%eax
412f72:	89 45 dc             	mov    %eax,-0x24(%ebp)
412f75:	33 c0                	xor    %eax,%eax
412f77:	3b c6                	cmp    %esi,%eax
412f79:	77 39                	ja     0x412fb4
412f7b:	72 05                	jb     0x412f82
412f7d:	39 7d b8             	cmp    %edi,-0x48(%ebp)
412f80:	73 32                	jae    0x412fb4
412f82:	85 c9                	test   %ecx,%ecx
412f84:	74 2b                	je     0x412fb1
412f86:	8b 55 c4             	mov    -0x3c(%ebp),%edx
412f89:	33 db                	xor    %ebx,%ebx
412f8b:	8b 75 dc             	mov    -0x24(%ebp),%esi
412f8e:	8b f9                	mov    %ecx,%edi
412f90:	8b 0a                	mov    (%edx),%ecx
412f92:	8d 76 04             	lea    0x4(%esi),%esi
412f95:	33 c0                	xor    %eax,%eax
412f97:	8d 52 04             	lea    0x4(%edx),%edx
412f9a:	03 4e fc             	add    -0x4(%esi),%ecx
412f9d:	13 c0                	adc    %eax,%eax
412f9f:	03 cb                	add    %ebx,%ecx
412fa1:	89 4a fc             	mov    %ecx,-0x4(%edx)
412fa4:	83 d0 00             	adc    $0x0,%eax
412fa7:	8b d8                	mov    %eax,%ebx
412fa9:	83 ef 01             	sub    $0x1,%edi
412fac:	75 e2                	jne    0x412f90
412fae:	8b 5d cc             	mov    -0x34(%ebp),%ebx
412fb1:	83 c3 ff             	add    $0xffffffff,%ebx
412fb4:	8b 45 c8             	mov    -0x38(%ebp),%eax
412fb7:	48                   	dec    %eax
412fb8:	89 45 f4             	mov    %eax,-0xc(%ebp)
412fbb:	8b 75 b4             	mov    -0x4c(%ebp),%esi
412fbe:	33 c0                	xor    %eax,%eax
412fc0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
412fc3:	03 c3                	add    %ebx,%eax
412fc5:	8b 5d b0             	mov    -0x50(%ebp),%ebx
412fc8:	8b f8                	mov    %eax,%edi
412fca:	8b 45 c8             	mov    -0x38(%ebp),%eax
412fcd:	83 d6 00             	adc    $0x0,%esi
412fd0:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
412fd4:	4b                   	dec    %ebx
412fd5:	48                   	dec    %eax
412fd6:	89 7d b4             	mov    %edi,-0x4c(%ebp)
412fd9:	83 e9 04             	sub    $0x4,%ecx
412fdc:	89 5d b0             	mov    %ebx,-0x50(%ebp)
412fdf:	89 45 c8             	mov    %eax,-0x38(%ebp)
412fe2:	89 4d e8             	mov    %ecx,-0x18(%ebp)
412fe5:	85 db                	test   %ebx,%ebx
412fe7:	0f 89 f3 fd ff ff    	jns    0x412de0
412fed:	eb 02                	jmp    0x412ff1
412fef:	33 ff                	xor    %edi,%edi
412ff1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
412ff4:	8b 5d 08             	mov    0x8(%ebp),%ebx
412ff7:	41                   	inc    %ecx
412ff8:	8b c1                	mov    %ecx,%eax
412ffa:	3b 03                	cmp    (%ebx),%eax
412ffc:	73 14                	jae    0x413012
412ffe:	8d 53 04             	lea    0x4(%ebx),%edx
413001:	8d 14 82             	lea    (%edx,%eax,4),%edx
413004:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
41300a:	8d 52 04             	lea    0x4(%edx),%edx
41300d:	40                   	inc    %eax
41300e:	3b 03                	cmp    (%ebx),%eax
413010:	72 f2                	jb     0x413004
413012:	89 0b                	mov    %ecx,(%ebx)
413014:	85 c9                	test   %ecx,%ecx
413016:	74 0d                	je     0x413025
413018:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
41301c:	75 07                	jne    0x413025
41301e:	83 c1 ff             	add    $0xffffffff,%ecx
413021:	89 0b                	mov    %ecx,(%ebx)
413023:	75 f3                	jne    0x413018
413025:	8b c7                	mov    %edi,%eax
413027:	8b d6                	mov    %esi,%edx
413029:	5f                   	pop    %edi
41302a:	5e                   	pop    %esi
41302b:	5b                   	pop    %ebx
41302c:	8b e5                	mov    %ebp,%esp
41302e:	5d                   	pop    %ebp
41302f:	c3                   	ret
413030:	5f                   	pop    %edi
413031:	5e                   	pop    %esi
413032:	33 c0                	xor    %eax,%eax
413034:	33 d2                	xor    %edx,%edx
413036:	5b                   	pop    %ebx
413037:	8b e5                	mov    %ebp,%esp
413039:	5d                   	pop    %ebp
41303a:	c3                   	ret
41303b:	8b ff                	mov    %edi,%edi
41303d:	55                   	push   %ebp
41303e:	8b ec                	mov    %esp,%ebp
413040:	81 ec 74 09 00 00    	sub    $0x974,%esp
413046:	a1 c0 10 42 00       	mov    0x4210c0,%eax
41304b:	33 c5                	xor    %ebp,%eax
41304d:	89 45 fc             	mov    %eax,-0x4(%ebp)
413050:	8b 45 18             	mov    0x18(%ebp),%eax
413053:	89 85 74 f8 ff ff    	mov    %eax,-0x78c(%ebp)
413059:	8b 45 1c             	mov    0x1c(%ebp),%eax
41305c:	89 85 a0 f8 ff ff    	mov    %eax,-0x760(%ebp)
413062:	8d 85 60 f8 ff ff    	lea    -0x7a0(%ebp),%eax
413068:	53                   	push   %ebx
413069:	50                   	push   %eax
41306a:	e8 8d 26 00 00       	call   0x4156fc
41306f:	8b 85 60 f8 ff ff    	mov    -0x7a0(%ebp),%eax
413075:	33 db                	xor    %ebx,%ebx
413077:	83 e0 1f             	and    $0x1f,%eax
41307a:	43                   	inc    %ebx
41307b:	59                   	pop    %ecx
41307c:	3c 1f                	cmp    $0x1f,%al
41307e:	75 09                	jne    0x413089
413080:	c6 85 68 f8 ff ff 00 	movb   $0x0,-0x798(%ebp)
413087:	eb 13                	jmp    0x41309c
413089:	8d 85 60 f8 ff ff    	lea    -0x7a0(%ebp),%eax
41308f:	50                   	push   %eax
413090:	e8 d0 26 00 00       	call   0x415765
413095:	59                   	pop    %ecx
413096:	88 9d 68 f8 ff ff    	mov    %bl,-0x798(%ebp)
41309c:	56                   	push   %esi
41309d:	8b 75 0c             	mov    0xc(%ebp),%esi
4130a0:	57                   	push   %edi
4130a1:	6a 20                	push   $0x20
4130a3:	5f                   	pop    %edi
4130a4:	85 f6                	test   %esi,%esi
4130a6:	7f 0d                	jg     0x4130b5
4130a8:	7c 06                	jl     0x4130b0