46aa5e:	8b 43 08             	mov    0x8(%ebx),%eax
46aa61:	33 c9                	xor    %ecx,%ecx
46aa63:	33 d2                	xor    %edx,%edx
46aa65:	eb 12                	jmp    0x46aa79
46aa67:	8b 4b 08             	mov    0x8(%ebx),%ecx
46aa6a:	8b c1                	mov    %ecx,%eax
46aa6c:	8b 53 0c             	mov    0xc(%ebx),%edx
46aa6f:	2b ce                	sub    %esi,%ecx
46aa71:	2b d6                	sub    %esi,%edx
46aa73:	c1 f9 02             	sar    $0x2,%ecx
46aa76:	c1 fa 02             	sar    $0x2,%edx
46aa79:	3b ca                	cmp    %edx,%ecx
46aa7b:	73 0e                	jae    0x46aa8b
46aa7d:	8d 48 04             	lea    0x4(%eax),%ecx
46aa80:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
46aa86:	89 4b 08             	mov    %ecx,0x8(%ebx)
46aa89:	eb 0d                	jmp    0x46aa98
46aa8b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46aa8e:	51                   	push   %ecx
46aa8f:	51                   	push   %ecx
46aa90:	50                   	push   %eax
46aa91:	8b cb                	mov    %ebx,%ecx
46aa93:	e8 2a 2f fb ff       	call   0x41d9c2
46aa98:	83 ef 01             	sub    $0x1,%edi
46aa9b:	0f 85 36 ff ff ff    	jne    0x46a9d7
46aaa1:	8b 45 e8             	mov    -0x18(%ebp),%eax
46aaa4:	e8 f8 59 02 00       	call   0x4904a1
46aaa9:	c2 08 00             	ret    $0x8
46aaac:	8b ff                	mov    %edi,%edi
46aaae:	55                   	push   %ebp
46aaaf:	8b ec                	mov    %esp,%ebp
46aab1:	83 ec 1c             	sub    $0x1c,%esp
46aab4:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
46aab9:	33 c5                	xor    %ebp,%eax
46aabb:	89 45 fc             	mov    %eax,-0x4(%ebp)
46aabe:	8b d1                	mov    %ecx,%edx
46aac0:	53                   	push   %ebx
46aac1:	56                   	push   %esi
46aac2:	8b 75 08             	mov    0x8(%ebp),%esi
46aac5:	8b 82 84 00 00 00    	mov    0x84(%edx),%eax
46aacb:	c1 e6 05             	shl    $0x5,%esi
46aace:	57                   	push   %edi
46aacf:	89 55 e4             	mov    %edx,-0x1c(%ebp)
46aad2:	8b 4c 30 04          	mov    0x4(%eax,%esi,1),%ecx
46aad6:	85 c9                	test   %ecx,%ecx
46aad8:	75 04                	jne    0x46aade
46aada:	33 c0                	xor    %eax,%eax
46aadc:	eb 09                	jmp    0x46aae7
46aade:	8b 44 30 08          	mov    0x8(%eax,%esi,1),%eax
46aae2:	2b c1                	sub    %ecx,%eax
46aae4:	c1 f8 02             	sar    $0x2,%eax
46aae7:	8d 78 ff             	lea    -0x1(%eax),%edi
46aaea:	85 ff                	test   %edi,%edi
46aaec:	0f 88 98 00 00 00    	js     0x46ab8a
46aaf2:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46aaf5:	8d 47 01             	lea    0x1(%edi),%eax
46aaf8:	89 45 e8             	mov    %eax,-0x18(%ebp)
46aafb:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
46ab01:	8b 54 31 14          	mov    0x14(%ecx,%esi,1),%edx
46ab05:	85 d2                	test   %edx,%edx
46ab07:	75 04                	jne    0x46ab0d
46ab09:	33 c0                	xor    %eax,%eax
46ab0b:	eb 09                	jmp    0x46ab16
46ab0d:	8b 44 31 18          	mov    0x18(%ecx,%esi,1),%eax
46ab11:	2b c2                	sub    %edx,%eax
46ab13:	c1 f8 02             	sar    $0x2,%eax
46ab16:	3b 45 e8             	cmp    -0x18(%ebp),%eax
46ab19:	7e 04                	jle    0x46ab1f
46ab1b:	2b 5c ba 04          	sub    0x4(%edx,%edi,4),%ebx
46ab1f:	8d 45 ec             	lea    -0x14(%ebp),%eax
46ab22:	50                   	push   %eax
46ab23:	8b 44 0e 04          	mov    0x4(%esi,%ecx,1),%eax
46ab27:	8b 04 b8             	mov    (%eax,%edi,4),%eax
46ab2a:	ff 70 20             	push   0x20(%eax)
46ab2d:	ff 15 e8 7d 4a 00    	call   *0x4a7de8
46ab33:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46ab36:	8d 45 ec             	lea    -0x14(%ebp),%eax
46ab39:	50                   	push   %eax
46ab3a:	e8 74 32 fb ff       	call   0x41ddb3
46ab3f:	8b 45 f8             	mov    -0x8(%ebp),%eax
46ab42:	2b 45 f0             	sub    -0x10(%ebp),%eax
46ab45:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46ab48:	6a 01                	push   $0x1
46ab4a:	50                   	push   %eax
46ab4b:	8b 45 f4             	mov    -0xc(%ebp),%eax
46ab4e:	2b c1                	sub    %ecx,%eax
46ab50:	2b 4d f4             	sub    -0xc(%ebp),%ecx
46ab53:	50                   	push   %eax
46ab54:	ff 75 f0             	push   -0x10(%ebp)
46ab57:	8d 41 ff             	lea    -0x1(%ecx),%eax
46ab5a:	03 c3                	add    %ebx,%eax
46ab5c:	50                   	push   %eax
46ab5d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46ab60:	8b 80 84 00 00 00    	mov    0x84(%eax),%eax
46ab66:	8b 4c 06 04          	mov    0x4(%esi,%eax,1),%ecx
46ab6a:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
46ab6d:	ff 15 50 74 4a 00    	call   *0x4a7450
46ab73:	8b 45 ec             	mov    -0x14(%ebp),%eax
46ab76:	2b 45 f4             	sub    -0xc(%ebp),%eax
46ab79:	8b 55 e4             	mov    -0x1c(%ebp),%edx
46ab7c:	03 d8                	add    %eax,%ebx
46ab7e:	ff 4d e8             	decl   -0x18(%ebp)
46ab81:	83 ef 01             	sub    $0x1,%edi
46ab84:	0f 89 71 ff ff ff    	jns    0x46aafb
46ab8a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46ab8d:	5f                   	pop    %edi
46ab8e:	5e                   	pop    %esi
46ab8f:	33 cd                	xor    %ebp,%ecx
46ab91:	5b                   	pop    %ebx
46ab92:	e8 69 53 02 00       	call   0x48ff00
46ab97:	c9                   	leave
46ab98:	c2 08 00             	ret    $0x8
46ab9b:	cc                   	int3
46ab9c:	cc                   	int3
46ab9d:	cc                   	int3
46ab9e:	cc                   	int3
46ab9f:	cc                   	int3
46aba0:	8b ff                	mov    %edi,%edi
46aba2:	55                   	push   %ebp
46aba3:	8b ec                	mov    %esp,%ebp
46aba5:	83 e4 f8             	and    $0xfffffff8,%esp
46aba8:	83 ec 44             	sub    $0x44,%esp
46abab:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
46abb0:	33 c4                	xor    %esp,%eax
46abb2:	89 44 24 40          	mov    %eax,0x40(%esp)
46abb6:	8b 45 0c             	mov    0xc(%ebp),%eax
46abb9:	53                   	push   %ebx
46abba:	56                   	push   %esi
46abbb:	57                   	push   %edi
46abbc:	8b f9                	mov    %ecx,%edi
46abbe:	89 44 24 24          	mov    %eax,0x24(%esp)
46abc2:	ff 15 1c 77 4a 00    	call   *0x4a771c
46abc8:	8d 44 24 30          	lea    0x30(%esp),%eax
46abcc:	50                   	push   %eax
46abcd:	ff 77 20             	push   0x20(%edi)
46abd0:	ff 15 e8 7d 4a 00    	call   *0x4a7de8
46abd6:	8b 44 24 34          	mov    0x34(%esp),%eax
46abda:	f7 d8                	neg    %eax
46abdc:	50                   	push   %eax
46abdd:	8b 44 24 34          	mov    0x34(%esp),%eax
46abe1:	f7 d8                	neg    %eax
46abe3:	50                   	push   %eax
46abe4:	8d 44 24 38          	lea    0x38(%esp),%eax
46abe8:	50                   	push   %eax
46abe9:	ff 15 e0 7c 4a 00    	call   *0x4a7ce0
46abef:	6a 01                	push   $0x1
46abf1:	8d 44 24 34          	lea    0x34(%esp),%eax
46abf5:	8b cf                	mov    %edi,%ecx
46abf7:	50                   	push   %eax
46abf8:	ff 15 3c 73 4a 00    	call   *0x4a733c
46abfe:	8b 37                	mov    (%edi),%esi
46ac00:	8d 44 24 40          	lea    0x40(%esp),%eax
46ac04:	50                   	push   %eax
46ac05:	6a 00                	push   $0x0
46ac07:	68 07 04 00 00       	push   $0x407
46ac0c:	8b b6 a8 00 00 00    	mov    0xa8(%esi),%esi
46ac12:	8b ce                	mov    %esi,%ecx
46ac14:	ff 15 2c 81 4a 00    	call   *0x4a812c
46ac1a:	8b cf                	mov    %edi,%ecx
46ac1c:	ff d6                	call   *%esi
46ac1e:	8b 5c 24 48          	mov    0x48(%esp),%ebx
46ac22:	33 f6                	xor    %esi,%esi
46ac24:	2b 5c 24 30          	sub    0x30(%esp),%ebx
46ac28:	03 5c 24 38          	add    0x38(%esp),%ebx
46ac2c:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
46ac31:	8b 47 5c             	mov    0x5c(%edi),%eax
46ac34:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46ac38:	85 c0                	test   %eax,%eax
46ac3a:	7e 45                	jle    0x46ac81
46ac3c:	56                   	push   %esi
46ac3d:	8b cf                	mov    %edi,%ecx
46ac3f:	ff 15 34 73 4a 00    	call   *0x4a7334
46ac45:	a9 00 00 00 08       	test   $0x8000000,%eax
46ac4a:	74 04                	je     0x46ac50
46ac4c:	ff 44 24 1c          	incl   0x1c(%esp)
46ac50:	8d 44 24 10          	lea    0x10(%esp),%eax
46ac54:	8b cf                	mov    %edi,%ecx
46ac56:	50                   	push   %eax
46ac57:	8d 44 24 24          	lea    0x24(%esp),%eax
46ac5b:	50                   	push   %eax
46ac5c:	8d 44 24 20          	lea    0x20(%esp),%eax
46ac60:	50                   	push   %eax
46ac61:	56                   	push   %esi
46ac62:	ff 15 2c 74 4a 00    	call   *0x4a742c
46ac68:	6a fa                	push   $0xfffffffa
46ac6a:	58                   	pop    %eax
46ac6b:	2b 44 24 48          	sub    0x48(%esp),%eax
46ac6f:	2b 44 24 10          	sub    0x10(%esp),%eax
46ac73:	03 d8                	add    %eax,%ebx
46ac75:	8b 47 5c             	mov    0x5c(%edi),%eax
46ac78:	46                   	inc    %esi
46ac79:	3b f0                	cmp    %eax,%esi
46ac7b:	7c bf                	jl     0x46ac3c
46ac7d:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46ac81:	33 c9                	xor    %ecx,%ecx
46ac83:	6a 04                	push   $0x4
46ac85:	5a                   	pop    %edx
46ac86:	f7 e2                	mul    %edx
46ac88:	0f 90 c1             	seto   %cl
46ac8b:	f7 d9                	neg    %ecx
46ac8d:	0b c8                	or     %eax,%ecx
46ac8f:	51                   	push   %ecx
46ac90:	e8 79 2d 02 00       	call   0x48da0e
46ac95:	8b 74 24 3c          	mov    0x3c(%esp),%esi
46ac99:	8b 5f 5c             	mov    0x5c(%edi),%ebx
46ac9c:	59                   	pop    %ecx
46ac9d:	89 44 24 18          	mov    %eax,0x18(%esp)
46aca1:	eb 75                	jmp    0x46ad18
46aca3:	8d 44 24 20          	lea    0x20(%esp),%eax
46aca7:	8b cf                	mov    %edi,%ecx
46aca9:	50                   	push   %eax
46acaa:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46acae:	50                   	push   %eax
46acaf:	8d 44 24 34          	lea    0x34(%esp),%eax
46acb3:	50                   	push   %eax
46acb4:	53                   	push   %ebx
46acb5:	ff 15 2c 74 4a 00    	call   *0x4a742c
46acbb:	8b 47 5c             	mov    0x5c(%edi),%eax
46acbe:	8b cb                	mov    %ebx,%ecx
46acc0:	c1 e1 02             	shl    $0x2,%ecx
46acc3:	03 4c 24 18          	add    0x18(%esp),%ecx
46acc7:	48                   	dec    %eax
46acc8:	3b d8                	cmp    %eax,%ebx
46acca:	8b 44 24 24          	mov    0x24(%esp),%eax
46acce:	74 02                	je     0x46acd2
46acd0:	8b c6                	mov    %esi,%eax
46acd2:	89 01                	mov    %eax,(%ecx)
46acd4:	8b c3                	mov    %ebx,%eax
46acd6:	8b 97 94 00 00 00    	mov    0x94(%edi),%edx
46acdc:	33 c9                	xor    %ecx,%ecx
46acde:	c1 e0 02             	shl    $0x2,%eax
46ace1:	03 d0                	add    %eax,%edx
46ace3:	8b c6                	mov    %esi,%eax
46ace5:	2b 44 24 20          	sub    0x20(%esp),%eax
46ace9:	3b 44 24 30          	cmp    0x30(%esp),%eax
46aced:	56                   	push   %esi
46acee:	0f 9d c1             	setge  %cl
46acf1:	89 0a                	mov    %ecx,(%edx)
46acf3:	8b cf                	mov    %edi,%ecx
46acf5:	53                   	push   %ebx
46acf6:	e8 b1 fd ff ff       	call   0x46aaac
46acfb:	53                   	push   %ebx
46acfc:	8b cf                	mov    %edi,%ecx
46acfe:	ff 15 34 73 4a 00    	call   *0x4a7334
46ad04:	a9 00 00 00 08       	test   $0x8000000,%eax
46ad09:	77 18                	ja     0x46ad23
46ad0b:	6a fa                	push   $0xfffffffa
46ad0d:	58                   	pop    %eax
46ad0e:	2b 44 24 48          	sub    0x48(%esp),%eax
46ad12:	2b 44 24 20          	sub    0x20(%esp),%eax
46ad16:	03 f0                	add    %eax,%esi
46ad18:	83 eb 01             	sub    $0x1,%ebx
46ad1b:	89 74 24 14          	mov    %esi,0x14(%esp)
46ad1f:	79 82                	jns    0x46aca3
46ad21:	eb 13                	jmp    0x46ad36
46ad23:	8b 44 24 10          	mov    0x10(%esp),%eax
46ad27:	85 c0                	test   %eax,%eax
46ad29:	7e 0b                	jle    0x46ad36
46ad2b:	99                   	cltd
46ad2c:	f7 7c 24 1c          	idivl  0x1c(%esp)
46ad30:	2b f0                	sub    %eax,%esi
46ad32:	89 74 24 14          	mov    %esi,0x14(%esp)
46ad36:	8b 44 24 30          	mov    0x30(%esp),%eax
46ad3a:	33 f6                	xor    %esi,%esi
46ad3c:	89 44 24 10          	mov    %eax,0x10(%esp)
46ad40:	85 db                	test   %ebx,%ebx
46ad42:	0f 8e 89 00 00 00    	jle    0x46add1
46ad48:	8d 44 24 24          	lea    0x24(%esp),%eax
46ad4c:	8b cf                	mov    %edi,%ecx
46ad4e:	50                   	push   %eax
46ad4f:	8d 44 24 30          	lea    0x30(%esp),%eax
46ad53:	50                   	push   %eax
46ad54:	8d 44 24 30          	lea    0x30(%esp),%eax
46ad58:	50                   	push   %eax
46ad59:	56                   	push   %esi
46ad5a:	ff 15 2c 74 4a 00    	call   *0x4a742c
46ad60:	8b 54 24 10          	mov    0x10(%esp),%edx
46ad64:	8b 44 24 48          	mov    0x48(%esp),%eax
46ad68:	83 c2 06             	add    $0x6,%edx
46ad6b:	03 44 24 24          	add    0x24(%esp),%eax
46ad6f:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46ad73:	03 d0                	add    %eax,%edx
46ad75:	89 54 24 10          	mov    %edx,0x10(%esp)
46ad79:	3b d1                	cmp    %ecx,%edx
46ad7b:	7d 24                	jge    0x46ada1
46ad7d:	8b 44 24 18          	mov    0x18(%esp),%eax
46ad81:	8b cf                	mov    %edi,%ecx
46ad83:	52                   	push   %edx
46ad84:	56                   	push   %esi
46ad85:	89 14 b0             	mov    %edx,(%eax,%esi,4)
46ad88:	e8 1f fd ff ff       	call   0x46aaac
46ad8d:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
46ad93:	c7 04 b0 01 00 00 00 	movl   $0x1,(%eax,%esi,4)
46ad9a:	46                   	inc    %esi
46ad9b:	3b f3                	cmp    %ebx,%esi
46ad9d:	7c a9                	jl     0x46ad48
46ad9f:	eb 28                	jmp    0x46adc9
46ada1:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
46ada7:	83 24 b0 00          	andl   $0x0,(%eax,%esi,4)
46adab:	eb 20                	jmp    0x46adcd
46adad:	8b 44 24 18          	mov    0x18(%esp),%eax
46adb1:	6a 00                	push   $0x0
46adb3:	56                   	push   %esi
46adb4:	89 0c b0             	mov    %ecx,(%eax,%esi,4)
46adb7:	8b cf                	mov    %edi,%ecx
46adb9:	e8 ee fc ff ff       	call   0x46aaac
46adbe:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
46adc4:	83 24 b0 00          	andl   $0x0,(%eax,%esi,4)
46adc8:	46                   	inc    %esi
46adc9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46adcd:	3b f3                	cmp    %ebx,%esi
46adcf:	7c dc                	jl     0x46adad
46add1:	8b 07                	mov    (%edi),%eax
46add3:	8b 5c 24 18          	mov    0x18(%esp),%ebx
46add7:	53                   	push   %ebx
46add8:	ff 77 5c             	push   0x5c(%edi)
46addb:	8b b0 a8 00 00 00    	mov    0xa8(%eax),%esi
46ade1:	8b ce                	mov    %esi,%ecx
46ade3:	68 04 04 00 00       	push   $0x404
46ade8:	ff 15 2c 81 4a 00    	call   *0x4a812c
46adee:	8b cf                	mov    %edi,%ecx
46adf0:	ff d6                	call   *%esi
46adf2:	53                   	push   %ebx
46adf3:	e8 54 2c 02 00       	call   0x48da4c
46adf8:	59                   	pop    %ecx
46adf9:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
46adfd:	5f                   	pop    %edi
46adfe:	5e                   	pop    %esi
46adff:	5b                   	pop    %ebx
46ae00:	33 cc                	xor    %esp,%ecx
46ae02:	e8 f9 50 02 00       	call   0x48ff00
46ae07:	8b e5                	mov    %ebp,%esp
46ae09:	5d                   	pop    %ebp
46ae0a:	c2 0c 00             	ret    $0xc
46ae0d:	cc                   	int3
46ae0e:	cc                   	int3
46ae0f:	cc                   	int3
46ae10:	8b ff                	mov    %edi,%edi
46ae12:	55                   	push   %ebp
46ae13:	8b ec                	mov    %esp,%ebp
46ae15:	83 e4 f8             	and    $0xfffffff8,%esp
46ae18:	83 ec 34             	sub    $0x34,%esp
46ae1b:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
46ae20:	33 c4                	xor    %esp,%eax
46ae22:	89 44 24 30          	mov    %eax,0x30(%esp)
46ae26:	53                   	push   %ebx
46ae27:	56                   	push   %esi
46ae28:	33 f6                	xor    %esi,%esi
46ae2a:	8b d1                	mov    %ecx,%edx
46ae2c:	8b 4d 08             	mov    0x8(%ebp),%ecx