5d0774:	0f b6 03             	movzbl (%ebx),%eax
5d0777:	33 c1                	xor    %ecx,%eax
5d0779:	23 c7                	and    %edi,%eax
5d077b:	69 c0 51 2d 9e cc    	imul   $0xcc9e2d51,%eax,%eax
5d0781:	c1 c8 11             	ror    $0x11,%eax
5d0784:	69 c0 93 35 87 1b    	imul   $0x1b873593,%eax,%eax
5d078a:	33 d0                	xor    %eax,%edx
5d078c:	33 d6                	xor    %esi,%edx
5d078e:	8b c2                	mov    %edx,%eax
5d0790:	c1 e8 10             	shr    $0x10,%eax
5d0793:	33 c2                	xor    %edx,%eax
5d0795:	69 c8 6b ca eb 85    	imul   $0x85ebca6b,%eax,%ecx
5d079b:	5f                   	pop    %edi
5d079c:	5e                   	pop    %esi
5d079d:	5b                   	pop    %ebx
5d079e:	8b c1                	mov    %ecx,%eax
5d07a0:	c1 e8 0d             	shr    $0xd,%eax
5d07a3:	33 c1                	xor    %ecx,%eax
5d07a5:	69 c8 35 ae b2 c2    	imul   $0xc2b2ae35,%eax,%ecx
5d07ab:	8b c1                	mov    %ecx,%eax
5d07ad:	c1 e8 10             	shr    $0x10,%eax
5d07b0:	33 c1                	xor    %ecx,%eax
5d07b2:	8b e5                	mov    %ebp,%esp
5d07b4:	5d                   	pop    %ebp
5d07b5:	c3                   	ret
5d07b6:	cc                   	int3
5d07b7:	cc                   	int3
5d07b8:	cc                   	int3
5d07b9:	cc                   	int3
5d07ba:	cc                   	int3
5d07bb:	cc                   	int3
5d07bc:	cc                   	int3
5d07bd:	cc                   	int3
5d07be:	cc                   	int3
5d07bf:	cc                   	int3
5d07c0:	55                   	push   %ebp
5d07c1:	8b ec                	mov    %esp,%ebp
5d07c3:	8b 45 08             	mov    0x8(%ebp),%eax
5d07c6:	56                   	push   %esi
5d07c7:	8b f1                	mov    %ecx,%esi
5d07c9:	b9 04 00 00 00       	mov    $0x4,%ecx
5d07ce:	3b c1                	cmp    %ecx,%eax
5d07d0:	0f 42 c1             	cmovb  %ecx,%eax
5d07d3:	8b 4d 10             	mov    0x10(%ebp),%ecx
5d07d6:	89 06                	mov    %eax,(%esi)
5d07d8:	8b 45 0c             	mov    0xc(%ebp),%eax
5d07db:	89 46 04             	mov    %eax,0x4(%esi)
5d07de:	33 c0                	xor    %eax,%eax
5d07e0:	66 89 46 28          	mov    %ax,0x28(%esi)
5d07e4:	89 46 20             	mov    %eax,0x20(%esi)
5d07e7:	89 46 1c             	mov    %eax,0x1c(%esi)
5d07ea:	8d 46 0c             	lea    0xc(%esi),%eax
5d07ed:	89 4e 08             	mov    %ecx,0x8(%esi)
5d07f0:	89 00                	mov    %eax,(%eax)
5d07f2:	89 46 10             	mov    %eax,0x10(%esi)
5d07f5:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
5d07fc:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
5d0803:	85 c9                	test   %ecx,%ecx
5d0805:	75 07                	jne    0x5d080e
5d0807:	8b ce                	mov    %esi,%ecx
5d0809:	e8 82 00 00 00       	call   0x5d0890
5d080e:	8b c6                	mov    %esi,%eax
5d0810:	5e                   	pop    %esi
5d0811:	5d                   	pop    %ebp
5d0812:	c2 0c 00             	ret    $0xc
5d0815:	cc                   	int3
5d0816:	cc                   	int3
5d0817:	cc                   	int3
5d0818:	cc                   	int3
5d0819:	cc                   	int3
5d081a:	cc                   	int3
5d081b:	cc                   	int3
5d081c:	cc                   	int3
5d081d:	cc                   	int3
5d081e:	cc                   	int3
5d081f:	cc                   	int3
5d0820:	55                   	push   %ebp
5d0821:	8b ec                	mov    %esp,%ebp
5d0823:	83 ec 08             	sub    $0x8,%esp
5d0826:	53                   	push   %ebx
5d0827:	57                   	push   %edi
5d0828:	8b f9                	mov    %ecx,%edi
5d082a:	89 7d f8             	mov    %edi,-0x8(%ebp)
5d082d:	8b 4f 20             	mov    0x20(%edi),%ecx
5d0830:	85 c9                	test   %ecx,%ecx
5d0832:	7e 14                	jle    0x5d0848
5d0834:	a1 f8 65 71 00       	mov    0x7165f8,%eax
5d0839:	85 c0                	test   %eax,%eax
5d083b:	74 0b                	je     0x5d0848
5d083d:	51                   	push   %ecx
5d083e:	68 98 0c 67 00       	push   $0x670c98
5d0843:	ff d0                	call   *%eax
5d0845:	83 c4 08             	add    $0x8,%esp
5d0848:	8b 47 10             	mov    0x10(%edi),%eax
5d084b:	8d 5f 0c             	lea    0xc(%edi),%ebx
5d084e:	3b c3                	cmp    %ebx,%eax
5d0850:	74 1f                	je     0x5d0871
5d0852:	8b f8                	mov    %eax,%edi
5d0854:	56                   	push   %esi
5d0855:	8b 77 04             	mov    0x4(%edi),%esi
5d0858:	e8 13 63 ff ff       	call   0x5c6b70
5d085d:	6a 00                	push   $0x0
5d085f:	57                   	push   %edi
5d0860:	8b c8                	mov    %eax,%ecx
5d0862:	8b 10                	mov    (%eax),%edx
5d0864:	ff 52 1c             	call   *0x1c(%edx)
5d0867:	8b fe                	mov    %esi,%edi
5d0869:	3b f3                	cmp    %ebx,%esi
5d086b:	75 e8                	jne    0x5d0855
5d086d:	8b 7d f8             	mov    -0x8(%ebp),%edi
5d0870:	5e                   	pop    %esi
5d0871:	33 c0                	xor    %eax,%eax
5d0873:	89 5f 10             	mov    %ebx,0x10(%edi)
5d0876:	66 89 47 28          	mov    %ax,0x28(%edi)
5d087a:	89 47 20             	mov    %eax,0x20(%edi)
5d087d:	89 47 1c             	mov    %eax,0x1c(%edi)
5d0880:	89 47 2c             	mov    %eax,0x2c(%edi)
5d0883:	89 47 24             	mov    %eax,0x24(%edi)
5d0886:	5f                   	pop    %edi
5d0887:	89 1b                	mov    %ebx,(%ebx)
5d0889:	5b                   	pop    %ebx
5d088a:	8b e5                	mov    %ebp,%esp
5d088c:	5d                   	pop    %ebp
5d088d:	c3                   	ret
5d088e:	cc                   	int3
5d088f:	cc                   	int3
5d0890:	55                   	push   %ebp
5d0891:	8b ec                	mov    %esp,%ebp
5d0893:	83 ec 08             	sub    $0x8,%esp
5d0896:	56                   	push   %esi
5d0897:	8b f1                	mov    %ecx,%esi
5d0899:	0f b7 56 28          	movzwl 0x28(%esi),%edx
5d089d:	8b 46 08             	mov    0x8(%esi),%eax
5d08a0:	8d 4a 01             	lea    0x1(%edx),%ecx
5d08a3:	83 f8 02             	cmp    $0x2,%eax
5d08a6:	74 33                	je     0x5d08db
5d08a8:	83 f8 03             	cmp    $0x3,%eax
5d08ab:	74 2e                	je     0x5d08db
5d08ad:	85 c0                	test   %eax,%eax
5d08af:	75 2f                	jne    0x5d08e0
5d08b1:	66 85 d2             	test   %dx,%dx
5d08b4:	74 2a                	je     0x5d08e0
5d08b6:	68 c8 0c 67 00       	push   $0x670cc8
5d08bb:	68 cb 00 00 00       	push   $0xcb
5d08c0:	68 f8 0c 67 00       	push   $0x670cf8
5d08c5:	e8 96 ab fe ff       	call   0x5bb460
5d08ca:	83 c4 0c             	add    $0xc,%esp
5d08cd:	84 c0                	test   %al,%al
5d08cf:	0f 85 54 01 00 00    	jne    0x5d0a29
5d08d5:	cc                   	int3
5d08d6:	5e                   	pop    %esi
5d08d7:	8b e5                	mov    %ebp,%esp
5d08d9:	5d                   	pop    %ebp
5d08da:	c3                   	ret
5d08db:	b9 01 00 00 00       	mov    $0x1,%ecx
5d08e0:	53                   	push   %ebx
5d08e1:	57                   	push   %edi
5d08e2:	8b 3e                	mov    (%esi),%edi
5d08e4:	ba 00 00 00 10       	mov    $0x10000000,%edx
5d08e9:	83 c7 04             	add    $0x4,%edi
5d08ec:	bb ef ff ff 7f       	mov    $0x7fffffef,%ebx
5d08f1:	85 c0                	test   %eax,%eax
5d08f3:	0f 45 da             	cmovne %edx,%ebx
5d08f6:	8b 56 04             	mov    0x4(%esi),%edx
5d08f9:	0f af d1             	imul   %ecx,%edx
5d08fc:	8b c2                	mov    %edx,%eax
5d08fe:	89 55 f8             	mov    %edx,-0x8(%ebp)
5d0901:	0f af c7             	imul   %edi,%eax
5d0904:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d0907:	3b c3                	cmp    %ebx,%eax
5d0909:	76 32                	jbe    0x5d093d
5d090b:	33 d2                	xor    %edx,%edx
5d090d:	8b c3                	mov    %ebx,%eax
5d090f:	f7 f7                	div    %edi
5d0911:	89 45 f8             	mov    %eax,-0x8(%ebp)
5d0914:	0f af c7             	imul   %edi,%eax
5d0917:	89 45 fc             	mov    %eax,-0x4(%ebp)
5d091a:	3b c3                	cmp    %ebx,%eax
5d091c:	76 1f                	jbe    0x5d093d
5d091e:	68 44 0d 67 00       	push   $0x670d44
5d0923:	68 dc 00 00 00       	push   $0xdc
5d0928:	68 f8 0c 67 00       	push   $0x670cf8
5d092d:	e8 2e ab fe ff       	call   0x5bb460
5d0932:	83 c4 0c             	add    $0xc,%esp
5d0935:	84 c0                	test   %al,%al
5d0937:	75 01                	jne    0x5d093a
5d0939:	cc                   	int3
5d093a:	8b 45 fc             	mov    -0x4(%ebp),%eax
5d093d:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
5d0941:	8d 58 0c             	lea    0xc(%eax),%ebx
5d0944:	75 2a                	jne    0x5d0970
5d0946:	e8 25 62 ff ff       	call   0x5c6b70
5d094b:	6a 00                	push   $0x0
5d094d:	68 e1 00 00 00       	push   $0xe1
5d0952:	68 f8 0c 67 00       	push   $0x670cf8
5d0957:	8b 08                	mov    (%eax),%ecx
5d0959:	53                   	push   %ebx
5d095a:	8b 91 90 00 00 00    	mov    0x90(%ecx),%edx
5d0960:	8b c8                	mov    %eax,%ecx
5d0962:	ff d2                	call   *%edx
5d0964:	8b d8                	mov    %eax,%ebx
5d0966:	85 db                	test   %ebx,%ebx
5d0968:	0f 84 b9 00 00 00    	je     0x5d0a27
5d096e:	eb 3f                	jmp    0x5d09af
5d0970:	e8 fb 61 ff ff       	call   0x5c6b70
5d0975:	6a 00                	push   $0x0
5d0977:	6a 00                	push   $0x0
5d0979:	68 e7 00 00 00       	push   $0xe7
5d097e:	8b 08                	mov    (%eax),%ecx
5d0980:	68 f8 0c 67 00       	push   $0x670cf8
5d0985:	53                   	push   %ebx
5d0986:	8b 51 08             	mov    0x8(%ecx),%edx
5d0989:	8b c8                	mov    %eax,%ecx
5d098b:	ff d2                	call   *%edx
5d098d:	8b d8                	mov    %eax,%ebx
5d098f:	85 db                	test   %ebx,%ebx
5d0991:	75 1c                	jne    0x5d09af
5d0993:	68 60 0d 67 00       	push   $0x670d60
5d0998:	68 e9 00 00 80       	push   $0x800000e9
5d099d:	68 f8 0c 67 00       	push   $0x670cf8
5d09a2:	e8 b9 aa fe ff       	call   0x5bb460
5d09a7:	83 c4 0c             	add    $0xc,%esp
5d09aa:	84 c0                	test   %al,%al
5d09ac:	75 01                	jne    0x5d09af
5d09ae:	cc                   	int3
5d09af:	8b 45 fc             	mov    -0x4(%ebp),%eax
5d09b2:	89 43 08             	mov    %eax,0x8(%ebx)
5d09b5:	8d 46 0c             	lea    0xc(%esi),%eax
5d09b8:	89 43 04             	mov    %eax,0x4(%ebx)
5d09bb:	8b 00                	mov    (%eax),%eax
5d09bd:	89 03                	mov    %eax,(%ebx)
5d09bf:	89 58 04             	mov    %ebx,0x4(%eax)
5d09c2:	8b 43 04             	mov    0x4(%ebx),%eax
5d09c5:	89 18                	mov    %ebx,(%eax)
5d09c7:	8d 43 10             	lea    0x10(%ebx),%eax
5d09ca:	89 46 1c             	mov    %eax,0x1c(%esi)
5d09cd:	85 c0                	test   %eax,%eax
5d09cf:	75 1c                	jne    0x5d09ed
5d09d1:	68 68 0d 67 00       	push   $0x670d68
5d09d6:	68 f3 00 00 00       	push   $0xf3
5d09db:	68 f8 0c 67 00       	push   $0x670cf8
5d09e0:	e8 7b aa fe ff       	call   0x5bb460
5d09e5:	83 c4 0c             	add    $0xc,%esp
5d09e8:	84 c0                	test   %al,%al
5d09ea:	75 01                	jne    0x5d09ed
5d09ec:	cc                   	int3
5d09ed:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5d09f0:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5d09f3:	8d 53 ff             	lea    -0x1(%ebx),%edx
5d09f6:	85 d2                	test   %edx,%edx
5d09f8:	7e 19                	jle    0x5d0a13
5d09fa:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
5d0a00:	c7 41 fc ee ee ee ee 	movl   $0xeeeeeeee,-0x4(%ecx)
5d0a07:	8d 04 39             	lea    (%ecx,%edi,1),%eax
5d0a0a:	89 01                	mov    %eax,(%ecx)
5d0a0c:	8b c8                	mov    %eax,%ecx
5d0a0e:	83 ea 01             	sub    $0x1,%edx
5d0a11:	75 ed                	jne    0x5d0a00
5d0a13:	c7 41 fc ee ee ee ee 	movl   $0xeeeeeeee,-0x4(%ecx)
5d0a1a:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
5d0a20:	01 5e 2c             	add    %ebx,0x2c(%esi)
5d0a23:	66 ff 46 28          	incw   0x28(%esi)
5d0a27:	5f                   	pop    %edi
5d0a28:	5b                   	pop    %ebx
5d0a29:	5e                   	pop    %esi
5d0a2a:	8b e5                	mov    %ebp,%esp
5d0a2c:	5d                   	pop    %ebp
5d0a2d:	c3                   	ret
5d0a2e:	cc                   	int3
5d0a2f:	cc                   	int3
5d0a30:	55                   	push   %ebp
5d0a31:	8b ec                	mov    %esp,%ebp
5d0a33:	8b 45 08             	mov    0x8(%ebp),%eax
5d0a36:	56                   	push   %esi
5d0a37:	8b f1                	mov    %ecx,%esi
5d0a39:	57                   	push   %edi
5d0a3a:	3b 06                	cmp    (%esi),%eax
5d0a3c:	77 3a                	ja     0x5d0a78
5d0a3e:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d0a41:	85 ff                	test   %edi,%edi
5d0a43:	75 3b                	jne    0x5d0a80
5d0a45:	39 7e 08             	cmp    %edi,0x8(%esi)
5d0a48:	74 2e                	je     0x5d0a78
5d0a4a:	e8 41 fe ff ff       	call   0x5d0890
5d0a4f:	8b 7e 1c             	mov    0x1c(%esi),%edi
5d0a52:	85 ff                	test   %edi,%edi
5d0a54:	75 2a                	jne    0x5d0a80
5d0a56:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
5d0a5a:	74 1c                	je     0x5d0a78
5d0a5c:	68 7c 0d 67 00       	push   $0x670d7c
5d0a61:	68 2d 01 00 00       	push   $0x12d
5d0a66:	68 f8 0c 67 00       	push   $0x670cf8
5d0a6b:	e8 f0 a9 fe ff       	call   0x5bb460
5d0a70:	83 c4 0c             	add    $0xc,%esp
5d0a73:	84 c0                	test   %al,%al
5d0a75:	75 01                	jne    0x5d0a78
5d0a77:	cc                   	int3
5d0a78:	5f                   	pop    %edi
5d0a79:	33 c0                	xor    %eax,%eax
5d0a7b:	5e                   	pop    %esi
5d0a7c:	5d                   	pop    %ebp
5d0a7d:	c2 04 00             	ret    $0x4
5d0a80:	8b 4e 20             	mov    0x20(%esi),%ecx
5d0a83:	41                   	inc    %ecx
5d0a84:	89 4e 20             	mov    %ecx,0x20(%esi)
5d0a87:	39 4e 24             	cmp    %ecx,0x24(%esi)
5d0a8a:	0f 4f 4e 24          	cmovg  0x24(%esi),%ecx
5d0a8e:	89 4e 24             	mov    %ecx,0x24(%esi)
5d0a91:	81 7f fc ee ee ee ee 	cmpl   $0xeeeeeeee,-0x4(%edi)
5d0a98:	74 1c                	je     0x5d0ab6
5d0a9a:	68 a4 0d 67 00       	push   $0x670da4
5d0a9f:	68 39 01 00 00       	push   $0x139
5d0aa4:	68 f8 0c 67 00       	push   $0x670cf8
5d0aa9:	e8 b2 a9 fe ff       	call   0x5bb460
5d0aae:	83 c4 0c             	add    $0xc,%esp
5d0ab1:	84 c0                	test   %al,%al
5d0ab3:	75 01                	jne    0x5d0ab6
5d0ab5:	cc                   	int3
5d0ab6:	c7 47 fc aa aa aa aa 	movl   $0xaaaaaaaa,-0x4(%edi)
5d0abd:	8b c7                	mov    %edi,%eax
5d0abf:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5d0ac2:	5f                   	pop    %edi
5d0ac3:	8b 09                	mov    (%ecx),%ecx
5d0ac5:	89 4e 1c             	mov    %ecx,0x1c(%esi)
5d0ac8:	5e                   	pop    %esi
5d0ac9:	5d                   	pop    %ebp
5d0aca:	c2 04 00             	ret    $0x4
5d0acd:	83 61 04 00          	andl   $0x0,0x4(%ecx)
5d0ad1:	8b c1                	mov    %ecx,%eax
5d0ad3:	83 61 08 00          	andl   $0x0,0x8(%ecx)
5d0ad7:	c7 41 04 dc 0d 67 00 	movl   $0x670ddc,0x4(%ecx)
5d0ade:	c7 01 2c 5e 60 00    	movl   $0x605e2c,(%ecx)
5d0ae4:	c3                   	ret
5d0ae5:	55                   	push   %ebp
5d0ae6:	8b ec                	mov    %esp,%ebp
5d0ae8:	51                   	push   %ecx
5d0ae9:	51                   	push   %ecx
5d0aea:	8b 45 08             	mov    0x8(%ebp),%eax
5d0aed:	56                   	push   %esi
5d0aee:	8b f1                	mov    %ecx,%esi
5d0af0:	89 45 f8             	mov    %eax,-0x8(%ebp)
5d0af3:	8d 45 f8             	lea    -0x8(%ebp),%eax
5d0af6:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
5d0afa:	8d 56 04             	lea    0x4(%esi),%edx
5d0afd:	c7 06 0c 5e 60 00    	movl   $0x605e0c,(%esi)
5d0b03:	83 22 00             	andl   $0x0,(%edx)
5d0b06:	83 62 04 00          	andl   $0x0,0x4(%edx)
5d0b0a:	52                   	push   %edx
5d0b0b:	50                   	push   %eax
5d0b0c:	e8 ac 2f 00 00       	call   0x5d3abd