46a88f:	50                   	push   %eax
46a890:	8d 4b 10             	lea    0x10(%ebx),%ecx
46a893:	e8 f8 35 fb ff       	call   0x41de90
46a898:	8b c3                	mov    %ebx,%eax
46a89a:	e8 02 5c 02 00       	call   0x4904a1
46a89f:	c2 04 00             	ret    $0x4
46a8a2:	cc                   	int3
46a8a3:	cc                   	int3
46a8a4:	cc                   	int3
46a8a5:	cc                   	int3
46a8a6:	cc                   	int3
46a8a7:	cc                   	int3
46a8a8:	cc                   	int3
46a8a9:	cc                   	int3
46a8aa:	cc                   	int3
46a8ab:	cc                   	int3
46a8ac:	cc                   	int3
46a8ad:	cc                   	int3
46a8ae:	cc                   	int3
46a8af:	cc                   	int3
46a8b0:	a1 24 73 4a 00       	mov    0x4a7324,%eax
46a8b5:	c3                   	ret
46a8b6:	cc                   	int3
46a8b7:	cc                   	int3
46a8b8:	cc                   	int3
46a8b9:	cc                   	int3
46a8ba:	cc                   	int3
46a8bb:	cc                   	int3
46a8bc:	cc                   	int3
46a8bd:	cc                   	int3
46a8be:	cc                   	int3
46a8bf:	cc                   	int3
46a8c0:	a1 40 73 4a 00       	mov    0x4a7340,%eax
46a8c5:	c3                   	ret
46a8c6:	cc                   	int3
46a8c7:	cc                   	int3
46a8c8:	cc                   	int3
46a8c9:	cc                   	int3
46a8ca:	cc                   	int3
46a8cb:	cc                   	int3
46a8cc:	cc                   	int3
46a8cd:	cc                   	int3
46a8ce:	cc                   	int3
46a8cf:	cc                   	int3
46a8d0:	8b ff                	mov    %edi,%edi
46a8d2:	55                   	push   %ebp
46a8d3:	8b ec                	mov    %esp,%ebp
46a8d5:	56                   	push   %esi
46a8d6:	8b f1                	mov    %ecx,%esi
46a8d8:	e8 15 00 00 00       	call   0x46a8f2
46a8dd:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
46a8e1:	74 08                	je     0x46a8eb
46a8e3:	56                   	push   %esi
46a8e4:	ff 15 10 74 4a 00    	call   *0x4a7410
46a8ea:	59                   	pop    %ecx
46a8eb:	8b c6                	mov    %esi,%eax
46a8ed:	5e                   	pop    %esi
46a8ee:	5d                   	pop    %ebp
46a8ef:	c2 04 00             	ret    $0x4
46a8f2:	8b ff                	mov    %edi,%edi
46a8f4:	55                   	push   %ebp
46a8f5:	8b ec                	mov    %esp,%ebp
46a8f7:	6a ff                	push   $0xffffffff
46a8f9:	68 7b 13 49 00       	push   $0x49137b
46a8fe:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46a904:	50                   	push   %eax
46a905:	56                   	push   %esi
46a906:	57                   	push   %edi
46a907:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
46a90c:	33 c5                	xor    %ebp,%eax
46a90e:	50                   	push   %eax
46a90f:	8d 45 f4             	lea    -0xc(%ebp),%eax
46a912:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46a918:	8b f1                	mov    %ecx,%esi
46a91a:	8d be 80 00 00 00    	lea    0x80(%esi),%edi
46a920:	c7 06 dc 55 40 00    	movl   $0x4055dc,(%esi)
46a926:	8b cf                	mov    %edi,%ecx
46a928:	e8 55 06 00 00       	call   0x46af82
46a92d:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
46a933:	8d 8e 90 00 00 00    	lea    0x90(%esi),%ecx
46a939:	3b 86 98 00 00 00    	cmp    0x98(%esi),%eax
46a93f:	74 06                	je     0x46a947
46a941:	89 86 98 00 00 00    	mov    %eax,0x98(%esi)
46a947:	e8 c4 2f fb ff       	call   0x41d910
46a94c:	8b cf                	mov    %edi,%ecx
46a94e:	e8 2c 07 00 00       	call   0x46b07f
46a953:	8b ce                	mov    %esi,%ecx
46a955:	ff 15 38 73 4a 00    	call   *0x4a7338
46a95b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46a95e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46a965:	59                   	pop    %ecx
46a966:	5f                   	pop    %edi
46a967:	5e                   	pop    %esi
46a968:	c9                   	leave
46a969:	c3                   	ret
46a96a:	cc                   	int3
46a96b:	cc                   	int3
46a96c:	cc                   	int3
46a96d:	cc                   	int3
46a96e:	cc                   	int3
46a96f:	cc                   	int3
46a970:	6a 2c                	push   $0x2c
46a972:	b8 8b 53 49 00       	mov    $0x49538b,%eax
46a977:	e8 57 5b 02 00       	call   0x4904d3
46a97c:	8b f1                	mov    %ecx,%esi
46a97e:	8b 7d 0c             	mov    0xc(%ebp),%edi
46a981:	57                   	push   %edi
46a982:	ff 75 08             	push   0x8(%ebp)
46a985:	ff 15 30 73 4a 00    	call   *0x4a7330
46a98b:	8d 9e 80 00 00 00    	lea    0x80(%esi),%ebx
46a991:	89 45 e8             	mov    %eax,-0x18(%ebp)
46a994:	8b cb                	mov    %ebx,%ecx
46a996:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a999:	e8 e4 05 00 00       	call   0x46af82
46a99e:	57                   	push   %edi
46a99f:	8b cb                	mov    %ebx,%ecx
46a9a1:	e8 11 06 00 00       	call   0x46afb7
46a9a6:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
46a9ac:	8d 9e 90 00 00 00    	lea    0x90(%esi),%ebx
46a9b2:	3b 86 98 00 00 00    	cmp    0x98(%esi),%eax
46a9b8:	74 06                	je     0x46a9c0
46a9ba:	89 86 98 00 00 00    	mov    %eax,0x98(%esi)
46a9c0:	57                   	push   %edi
46a9c1:	8b cb                	mov    %ebx,%ecx
46a9c3:	e8 f4 06 00 00       	call   0x46b0bc
46a9c8:	85 ff                	test   %edi,%edi
46a9ca:	0f 8e d1 00 00 00    	jle    0x46aaa1
46a9d0:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
46a9d7:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
46a9db:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
46a9df:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
46a9e3:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
46a9e7:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
46a9eb:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
46a9ef:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46a9f2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
46a9f9:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
46a9fd:	75 09                	jne    0x46aa08
46a9ff:	8b 41 08             	mov    0x8(%ecx),%eax
46aa02:	33 d2                	xor    %edx,%edx
46aa04:	33 f6                	xor    %esi,%esi
46aa06:	eb 14                	jmp    0x46aa1c
46aa08:	8b 51 08             	mov    0x8(%ecx),%edx
46aa0b:	8b c2                	mov    %edx,%eax
46aa0d:	2b 51 04             	sub    0x4(%ecx),%edx
46aa10:	8b 71 0c             	mov    0xc(%ecx),%esi
46aa13:	2b 71 04             	sub    0x4(%ecx),%esi
46aa16:	c1 fa 05             	sar    $0x5,%edx
46aa19:	c1 fe 05             	sar    $0x5,%esi
46aa1c:	3b d6                	cmp    %esi,%edx
46aa1e:	73 20                	jae    0x46aa40
46aa20:	ff 75 e8             	push   -0x18(%ebp)
46aa23:	33 d2                	xor    %edx,%edx
46aa25:	8d 70 20             	lea    0x20(%eax),%esi
46aa28:	ff 75 e8             	push   -0x18(%ebp)
46aa2b:	42                   	inc    %edx
46aa2c:	51                   	push   %ecx
46aa2d:	8d 4d c8             	lea    -0x38(%ebp),%ecx
46aa30:	51                   	push   %ecx
46aa31:	8b c8                	mov    %eax,%ecx
46aa33:	e8 f1 09 00 00       	call   0x46b429
46aa38:	8b 45 f0             	mov    -0x10(%ebp),%eax
46aa3b:	89 70 08             	mov    %esi,0x8(%eax)
46aa3e:	eb 0b                	jmp    0x46aa4b
46aa40:	8d 55 c8             	lea    -0x38(%ebp),%edx
46aa43:	52                   	push   %edx
46aa44:	51                   	push   %ecx
46aa45:	50                   	push   %eax
46aa46:	e8 6f 07 00 00       	call   0x46b1ba
46aa4b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
46aa4f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
46aa52:	e8 0e 34 fb ff       	call   0x41de65
46aa57:	8b 73 04             	mov    0x4(%ebx),%esi
46aa5a:	85 f6                	test   %esi,%esi
46aa5c:	75 09                	jne    0x46aa67
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)