51d793:	51                   	push   %ecx
51d794:	56                   	push   %esi
51d795:	8b 75 08             	mov    0x8(%ebp),%esi
51d798:	80 3e 00             	cmpb   $0x0,(%esi)
51d79b:	74 0a                	je     0x51d7a7
51d79d:	83 c8 ff             	or     $0xffffffff,%eax
51d7a0:	0b d0                	or     %eax,%edx
51d7a2:	5e                   	pop    %esi
51d7a3:	8b e5                	mov    %ebp,%esp
51d7a5:	5d                   	pop    %ebp
51d7a6:	c3                   	ret
51d7a7:	8b 46 74             	mov    0x74(%esi),%eax
51d7aa:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
51d7ae:	74 ed                	je     0x51d79d
51d7b0:	0f b7 40 18          	movzwl 0x18(%eax),%eax
51d7b4:	53                   	push   %ebx
51d7b5:	99                   	cltd
51d7b6:	32 db                	xor    %bl,%bl
51d7b8:	57                   	push   %edi
51d7b9:	8b f8                	mov    %eax,%edi
51d7bb:	89 55 08             	mov    %edx,0x8(%ebp)
51d7be:	0f be 46 44          	movsbl 0x44(%esi),%eax
51d7c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
51d7c5:	85 c0                	test   %eax,%eax
51d7c7:	7e 2a                	jle    0x51d7f3
51d7c9:	33 c9                	xor    %ecx,%ecx
51d7cb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
51d7d0:	8b 44 8e 78          	mov    0x78(%esi,%ecx,4),%eax
51d7d4:	ff 75 08             	push   0x8(%ebp)
51d7d7:	57                   	push   %edi
51d7d8:	0f b7 40 18          	movzwl 0x18(%eax),%eax
51d7dc:	99                   	cltd
51d7dd:	52                   	push   %edx
51d7de:	50                   	push   %eax
51d7df:	e8 1c 43 0c 00       	call   0x5e1b00
51d7e4:	fe c3                	inc    %bl
51d7e6:	89 55 08             	mov    %edx,0x8(%ebp)
51d7e9:	0f b6 cb             	movzbl %bl,%ecx
51d7ec:	8b f8                	mov    %eax,%edi
51d7ee:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
51d7f1:	7c dd                	jl     0x51d7d0
51d7f3:	8b c7                	mov    %edi,%eax
51d7f5:	5f                   	pop    %edi
51d7f6:	5b                   	pop    %ebx
51d7f7:	5e                   	pop    %esi
51d7f8:	8b e5                	mov    %ebp,%esp
51d7fa:	5d                   	pop    %ebp
51d7fb:	c3                   	ret
51d7fc:	cc                   	int3
51d7fd:	cc                   	int3
51d7fe:	cc                   	int3
51d7ff:	cc                   	int3
51d800:	55                   	push   %ebp
51d801:	8b ec                	mov    %esp,%ebp
51d803:	56                   	push   %esi
51d804:	8b 75 08             	mov    0x8(%ebp),%esi
51d807:	85 f6                	test   %esi,%esi
51d809:	0f 84 ac 00 00 00    	je     0x51d8bb
51d80f:	80 7e 08 02          	cmpb   $0x2,0x8(%esi)
51d813:	0f 85 a2 00 00 00    	jne    0x51d8bb
51d819:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51d81d:	53                   	push   %ebx
51d81e:	57                   	push   %edi
51d81f:	8b 7e 04             	mov    0x4(%esi),%edi
51d822:	74 12                	je     0x51d836
51d824:	ff 46 0c             	incl   0xc(%esi)
51d827:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51d82b:	75 09                	jne    0x51d836
51d82d:	56                   	push   %esi
51d82e:	e8 9d 97 fd ff       	call   0x4f6fd0
51d833:	83 c4 04             	add    $0x4,%esp
51d836:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51d839:	83 f9 02             	cmp    $0x2,%ecx
51d83c:	75 1d                	jne    0x51d85b
51d83e:	8b 47 08             	mov    0x8(%edi),%eax
51d841:	85 c0                	test   %eax,%eax
51d843:	74 16                	je     0x51d85b
51d845:	6a 00                	push   $0x0
51d847:	6a 00                	push   $0x0
51d849:	50                   	push   %eax
51d84a:	e8 81 79 ff ff       	call   0x5151d0
51d84f:	8b d8                	mov    %eax,%ebx
51d851:	83 c4 0c             	add    $0xc,%esp
51d854:	85 db                	test   %ebx,%ebx
51d856:	75 47                	jne    0x51d89f
51d858:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51d85b:	ff 75 10             	push   0x10(%ebp)
51d85e:	51                   	push   %ecx
51d85f:	ff 37                	push   (%edi)
51d861:	e8 aa 59 01 00       	call   0x533210
51d866:	8b d8                	mov    %eax,%ebx
51d868:	83 c4 0c             	add    $0xc,%esp
51d86b:	85 db                	test   %ebx,%ebx
51d86d:	75 30                	jne    0x51d89f
51d86f:	39 45 10             	cmp    %eax,0x10(%ebp)
51d872:	7d 09                	jge    0x51d87d
51d874:	f6 47 16 10          	testb  $0x10,0x16(%edi)
51d878:	74 03                	je     0x51d87d
51d87a:	89 47 2c             	mov    %eax,0x2c(%edi)
51d87d:	57                   	push   %edi
51d87e:	e8 9d df fe ff       	call   0x50b820
51d883:	8b d8                	mov    %eax,%ebx
51d885:	83 c4 04             	add    $0x4,%esp
51d888:	8b 47 0c             	mov    0xc(%edi),%eax
51d88b:	8b 40 38             	mov    0x38(%eax),%eax
51d88e:	8b 40 1c             	mov    0x1c(%eax),%eax
51d891:	0f c8                	bswap  %eax
51d893:	85 c0                	test   %eax,%eax
51d895:	75 05                	jne    0x51d89c
51d897:	8b 07                	mov    (%edi),%eax
51d899:	8b 40 18             	mov    0x18(%eax),%eax
51d89c:	89 47 2c             	mov    %eax,0x2c(%edi)
51d89f:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51d8a3:	74 0f                	je     0x51d8b4
51d8a5:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51d8a9:	75 09                	jne    0x51d8b4
51d8ab:	56                   	push   %esi
51d8ac:	e8 1f b1 03 00       	call   0x5589d0
51d8b1:	83 c4 04             	add    $0x4,%esp
51d8b4:	5f                   	pop    %edi
51d8b5:	8b c3                	mov    %ebx,%eax
51d8b7:	5b                   	pop    %ebx
51d8b8:	5e                   	pop    %esi
51d8b9:	5d                   	pop    %ebp
51d8ba:	c3                   	ret
51d8bb:	33 c0                	xor    %eax,%eax
51d8bd:	5e                   	pop    %esi
51d8be:	5d                   	pop    %ebp
51d8bf:	c3                   	ret
51d8c0:	55                   	push   %ebp
51d8c1:	8b ec                	mov    %esp,%ebp
51d8c3:	56                   	push   %esi
51d8c4:	8b 75 08             	mov    0x8(%ebp),%esi
51d8c7:	57                   	push   %edi
51d8c8:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51d8cc:	74 12                	je     0x51d8e0
51d8ce:	ff 46 0c             	incl   0xc(%esi)
51d8d1:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51d8d5:	75 09                	jne    0x51d8e0
51d8d7:	56                   	push   %esi
51d8d8:	e8 f3 96 fd ff       	call   0x4f6fd0
51d8dd:	83 c4 04             	add    $0x4,%esp
51d8e0:	8a 4e 09             	mov    0x9(%esi),%cl
51d8e3:	8b 46 04             	mov    0x4(%esi),%eax
51d8e6:	84 c9                	test   %cl,%cl
51d8e8:	74 30                	je     0x51d91a
51d8ea:	39 70 4c             	cmp    %esi,0x4c(%eax)
51d8ed:	74 0d                	je     0x51d8fc
51d8ef:	f6 40 16 40          	testb  $0x40,0x16(%eax)
51d8f3:	74 07                	je     0x51d8fc
51d8f5:	bf 06 01 00 00       	mov    $0x106,%edi
51d8fa:	eb 20                	jmp    0x51d91c
51d8fc:	8b 40 48             	mov    0x48(%eax),%eax
51d8ff:	85 c0                	test   %eax,%eax
51d901:	74 17                	je     0x51d91a
51d903:	39 30                	cmp    %esi,(%eax)
51d905:	74 0c                	je     0x51d913
51d907:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
51d90b:	75 06                	jne    0x51d913
51d90d:	80 78 08 01          	cmpb   $0x1,0x8(%eax)
51d911:	75 e2                	jne    0x51d8f5
51d913:	8b 40 0c             	mov    0xc(%eax),%eax
51d916:	85 c0                	test   %eax,%eax
51d918:	75 e9                	jne    0x51d903
51d91a:	33 ff                	xor    %edi,%edi
51d91c:	84 c9                	test   %cl,%cl
51d91e:	74 0f                	je     0x51d92f
51d920:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51d924:	75 09                	jne    0x51d92f
51d926:	56                   	push   %esi
51d927:	e8 a4 b0 03 00       	call   0x5589d0
51d92c:	83 c4 04             	add    $0x4,%esp
51d92f:	8b c7                	mov    %edi,%eax
51d931:	5f                   	pop    %edi
51d932:	5e                   	pop    %esi
51d933:	5d                   	pop    %ebp
51d934:	c3                   	ret
51d935:	cc                   	int3
51d936:	cc                   	int3
51d937:	cc                   	int3
51d938:	cc                   	int3
51d939:	cc                   	int3
51d93a:	cc                   	int3
51d93b:	cc                   	int3
51d93c:	cc                   	int3
51d93d:	cc                   	int3
51d93e:	cc                   	int3
51d93f:	cc                   	int3
51d940:	55                   	push   %ebp
51d941:	8b ec                	mov    %esp,%ebp
51d943:	56                   	push   %esi
51d944:	8b 75 08             	mov    0x8(%ebp),%esi
51d947:	85 f6                	test   %esi,%esi
51d949:	75 05                	jne    0x51d950
51d94b:	33 c0                	xor    %eax,%eax
51d94d:	5e                   	pop    %esi
51d94e:	5d                   	pop    %ebp
51d94f:	c3                   	ret
51d950:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51d954:	74 12                	je     0x51d968
51d956:	ff 46 0c             	incl   0xc(%esi)
51d959:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51d95d:	75 09                	jne    0x51d968
51d95f:	56                   	push   %esi
51d960:	e8 6b 96 fd ff       	call   0x4f6fd0
51d965:	83 c4 04             	add    $0x4,%esp
51d968:	8b 55 0c             	mov    0xc(%ebp),%edx
51d96b:	85 d2                	test   %edx,%edx
51d96d:	78 1a                	js     0x51d989
51d96f:	8b 46 04             	mov    0x4(%esi),%eax
51d972:	b9 f3 ff 00 00       	mov    $0xfff3,%ecx
51d977:	66 21 48 16          	and    %cx,0x16(%eax)
51d97b:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
51d982:	8b 4e 04             	mov    0x4(%esi),%ecx
51d985:	66 09 41 16          	or     %ax,0x16(%ecx)
51d989:	8b 46 04             	mov    0x4(%esi),%eax
51d98c:	57                   	push   %edi
51d98d:	0f b7 78 16          	movzwl 0x16(%eax),%edi
51d991:	c1 ef 02             	shr    $0x2,%edi
51d994:	83 e7 03             	and    $0x3,%edi
51d997:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51d99b:	74 0f                	je     0x51d9ac
51d99d:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51d9a1:	75 09                	jne    0x51d9ac
51d9a3:	56                   	push   %esi
51d9a4:	e8 27 b0 03 00       	call   0x5589d0
51d9a9:	83 c4 04             	add    $0x4,%esp
51d9ac:	8b c7                	mov    %edi,%eax
51d9ae:	5f                   	pop    %edi
51d9af:	5e                   	pop    %esi
51d9b0:	5d                   	pop    %ebp
51d9b1:	c3                   	ret
51d9b2:	cc                   	int3
51d9b3:	cc                   	int3
51d9b4:	cc                   	int3
51d9b5:	cc                   	int3
51d9b6:	cc                   	int3
51d9b7:	cc                   	int3
51d9b8:	cc                   	int3
51d9b9:	cc                   	int3
51d9ba:	cc                   	int3
51d9bb:	cc                   	int3
51d9bc:	cc                   	int3
51d9bd:	cc                   	int3
51d9be:	cc                   	int3
51d9bf:	cc                   	int3
51d9c0:	55                   	push   %ebp
51d9c1:	8b ec                	mov    %esp,%ebp
51d9c3:	53                   	push   %ebx
51d9c4:	56                   	push   %esi
51d9c5:	8b 75 08             	mov    0x8(%ebp),%esi
51d9c8:	57                   	push   %edi
51d9c9:	33 ff                	xor    %edi,%edi
51d9cb:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51d9cf:	8b 5e 04             	mov    0x4(%esi),%ebx
51d9d2:	74 12                	je     0x51d9e6
51d9d4:	ff 46 0c             	incl   0xc(%esi)
51d9d7:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
51d9db:	75 09                	jne    0x51d9e6
51d9dd:	56                   	push   %esi
51d9de:	e8 ed 95 fd ff       	call   0x4f6fd0
51d9e3:	83 c4 04             	add    $0x4,%esp
51d9e6:	f6 43 16 02          	testb  $0x2,0x16(%ebx)
51d9ea:	8b 55 0c             	mov    0xc(%ebp),%edx
51d9ed:	74 16                	je     0x51da05
51d9ef:	0f b6 43 11          	movzbl 0x11(%ebx),%eax
51d9f3:	33 c9                	xor    %ecx,%ecx
51d9f5:	84 d2                	test   %dl,%dl
51d9f7:	0f 95 c1             	setne  %cl
51d9fa:	3b c8                	cmp    %eax,%ecx
51d9fc:	74 07                	je     0x51da05
51d9fe:	bf 08 00 00 00       	mov    $0x8,%edi
51da03:	eb 11                	jmp    0x51da16
51da05:	84 d2                	test   %dl,%dl
51da07:	0f 95 c0             	setne  %al
51da0a:	80 fa 02             	cmp    $0x2,%dl
51da0d:	88 43 11             	mov    %al,0x11(%ebx)
51da10:	0f 94 c0             	sete   %al
51da13:	88 43 12             	mov    %al,0x12(%ebx)
51da16:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
51da1a:	74 0f                	je     0x51da2b
51da1c:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
51da20:	75 09                	jne    0x51da2b
51da22:	56                   	push   %esi
51da23:	e8 a8 af 03 00       	call   0x5589d0
51da28:	83 c4 04             	add    $0x4,%esp
51da2b:	8b c7                	mov    %edi,%eax
51da2d:	5f                   	pop    %edi
51da2e:	5e                   	pop    %esi
51da2f:	5b                   	pop    %ebx
51da30:	5d                   	pop    %ebp
51da31:	c3                   	ret
51da32:	cc                   	int3
51da33:	cc                   	int3
51da34:	cc                   	int3
51da35:	cc                   	int3
51da36:	cc                   	int3
51da37:	cc                   	int3
51da38:	cc                   	int3
51da39:	cc                   	int3
51da3a:	cc                   	int3
51da3b:	cc                   	int3
51da3c:	cc                   	int3
51da3d:	cc                   	int3
51da3e:	cc                   	int3
51da3f:	cc                   	int3
51da40:	55                   	push   %ebp
51da41:	8b ec                	mov    %esp,%ebp
51da43:	53                   	push   %ebx
51da44:	56                   	push   %esi
51da45:	57                   	push   %edi
51da46:	8b 7d 08             	mov    0x8(%ebp),%edi
51da49:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
51da4d:	8b 77 04             	mov    0x4(%edi),%esi
51da50:	74 12                	je     0x51da64
51da52:	ff 47 0c             	incl   0xc(%edi)
51da55:	80 7f 0a 00          	cmpb   $0x0,0xa(%edi)
51da59:	75 09                	jne    0x51da64
51da5b:	57                   	push   %edi
51da5c:	e8 6f 95 fd ff       	call   0x4f6fd0
51da61:	83 c4 04             	add    $0x4,%esp
51da64:	8b 06                	mov    (%esi),%eax
51da66:	8b 5d 0c             	mov    0xc(%ebp),%ebx
51da69:	8b 88 d4 00 00 00    	mov    0xd4(%eax),%ecx
51da6f:	89 4d 08             	mov    %ecx,0x8(%ebp)
51da72:	89 59 10             	mov    %ebx,0x10(%ecx)
51da75:	85 db                	test   %ebx,%ebx
51da77:	79 20                	jns    0x51da99
51da79:	8b 41 1c             	mov    0x1c(%ecx),%eax
51da7c:	03 41 18             	add    0x18(%ecx),%eax
51da7f:	99                   	cltd
51da80:	52                   	push   %edx
51da81:	8b f0                	mov    %eax,%esi
51da83:	ba 00 fc ff ff       	mov    $0xfffffc00,%edx
51da88:	8b c3                	mov    %ebx,%eax
51da8a:	f7 ea                	imul   %edx
51da8c:	56                   	push   %esi
51da8d:	52                   	push   %edx
51da8e:	50                   	push   %eax
51da8f:	e8 ac 40 0c 00       	call   0x5e1b40
51da94:	8b 4d 08             	mov    0x8(%ebp),%ecx
51da97:	8b d8                	mov    %eax,%ebx
51da99:	53                   	push   %ebx
51da9a:	ff 71 2c             	push   0x2c(%ecx)
51da9d:	ff 15 88 18 72 00    	call   *0x721888
51daa3:	83 c4 08             	add    $0x8,%esp
51daa6:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
51daaa:	74 0f                	je     0x51dabb
51daac:	83 47 0c ff          	addl   $0xffffffff,0xc(%edi)
51dab0:	75 09                	jne    0x51dabb