57887f:	e8 2c 5f f3 ff       	call   0x4ae7b0
578884:	8b f0                	mov    %eax,%esi
578886:	83 c4 04             	add    $0x4,%esp
578889:	85 f6                	test   %esi,%esi
57888b:	0f 84 a7 00 00 00    	je     0x578938
578891:	2b c3                	sub    %ebx,%eax
578893:	03 f8                	add    %eax,%edi
578895:	6a 3a                	push   $0x3a
578897:	56                   	push   %esi
578898:	c6 07 00             	movb   $0x0,(%edi)
57889b:	47                   	inc    %edi
57889c:	e8 bf b7 06 00       	call   0x5e4060
5788a1:	83 c4 08             	add    $0x8,%esp
5788a4:	85 c0                	test   %eax,%eax
5788a6:	8d 44 24 0c          	lea    0xc(%esp),%eax
5788aa:	56                   	push   %esi
5788ab:	50                   	push   %eax
5788ac:	74 13                	je     0x5788c1
5788ae:	e8 4d 03 00 00       	call   0x578c00
5788b3:	83 c4 08             	add    $0x8,%esp
5788b6:	85 c0                	test   %eax,%eax
5788b8:	74 75                	je     0x57892f
5788ba:	bb 10 00 00 00       	mov    $0x10,%ebx
5788bf:	eb 11                	jmp    0x5788d2
5788c1:	e8 1a 02 00 00       	call   0x578ae0
5788c6:	83 c4 08             	add    $0x8,%esp
5788c9:	85 c0                	test   %eax,%eax
5788cb:	74 62                	je     0x57892f
5788cd:	bb 04 00 00 00       	mov    $0x4,%ebx
5788d2:	8d 44 24 0c          	lea    0xc(%esp),%eax
5788d6:	03 c3                	add    %ebx,%eax
5788d8:	57                   	push   %edi
5788d9:	50                   	push   %eax
5788da:	e8 71 00 00 00       	call   0x578950
5788df:	56                   	push   %esi
5788e0:	8b f8                	mov    %eax,%edi
5788e2:	e8 49 78 f2 ff       	call   0x4a0130
5788e7:	83 c4 0c             	add    $0xc,%esp
5788ea:	85 ff                	test   %edi,%edi
5788ec:	74 4a                	je     0x578938
5788ee:	3b df                	cmp    %edi,%ebx
5788f0:	75 46                	jne    0x578938
5788f2:	e8 99 b3 f3 ff       	call   0x4b3c90
5788f7:	8b f0                	mov    %eax,%esi
5788f9:	85 f6                	test   %esi,%esi
5788fb:	74 3b                	je     0x578938
5788fd:	8d 0c 1f             	lea    (%edi,%ebx,1),%ecx
578900:	51                   	push   %ecx
578901:	8d 44 24 10          	lea    0x10(%esp),%eax
578905:	50                   	push   %eax
578906:	56                   	push   %esi
578907:	e8 94 46 f6 ff       	call   0x4dcfa0
57890c:	83 c4 0c             	add    $0xc,%esp
57890f:	85 c0                	test   %eax,%eax
578911:	74 14                	je     0x578927
578913:	8b c6                	mov    %esi,%eax
578915:	5e                   	pop    %esi
578916:	5f                   	pop    %edi
578917:	5b                   	pop    %ebx
578918:	8b 4c 24 20          	mov    0x20(%esp),%ecx
57891c:	33 cc                	xor    %esp,%ecx
57891e:	e8 b7 8b 06 00       	call   0x5e14da
578923:	83 c4 24             	add    $0x24,%esp
578926:	c3                   	ret
578927:	56                   	push   %esi
578928:	e8 33 b3 f3 ff       	call   0x4b3c60
57892d:	eb 06                	jmp    0x578935
57892f:	56                   	push   %esi
578930:	e8 fb 77 f2 ff       	call   0x4a0130
578935:	83 c4 04             	add    $0x4,%esp
578938:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
57893c:	33 c0                	xor    %eax,%eax
57893e:	5e                   	pop    %esi
57893f:	5f                   	pop    %edi
578940:	5b                   	pop    %ebx
578941:	33 cc                	xor    %esp,%ecx
578943:	e8 92 8b 06 00       	call   0x5e14da
578948:	83 c4 24             	add    $0x24,%esp
57894b:	c3                   	ret
57894c:	cc                   	int3
57894d:	cc                   	int3
57894e:	cc                   	int3
57894f:	cc                   	int3
578950:	56                   	push   %esi
578951:	8b 74 24 0c          	mov    0xc(%esp),%esi
578955:	6a 3a                	push   $0x3a
578957:	56                   	push   %esi
578958:	e8 03 b7 06 00       	call   0x5e4060
57895d:	83 c4 08             	add    $0x8,%esp
578960:	56                   	push   %esi
578961:	ff 74 24 0c          	push   0xc(%esp)
578965:	85 c0                	test   %eax,%eax
578967:	74 11                	je     0x57897a
578969:	e8 92 02 00 00       	call   0x578c00
57896e:	83 c4 08             	add    $0x8,%esp
578971:	f7 d8                	neg    %eax
578973:	1b c0                	sbb    %eax,%eax
578975:	83 e0 10             	and    $0x10,%eax
578978:	5e                   	pop    %esi
578979:	c3                   	ret
57897a:	e8 61 01 00 00       	call   0x578ae0
57897f:	83 c4 08             	add    $0x8,%esp
578982:	f7 d8                	neg    %eax
578984:	1b c0                	sbb    %eax,%eax
578986:	83 e0 04             	and    $0x4,%eax
578989:	5e                   	pop    %esi
57898a:	c3                   	ret
57898b:	cc                   	int3
57898c:	cc                   	int3
57898d:	cc                   	int3
57898e:	cc                   	int3
57898f:	cc                   	int3
578990:	56                   	push   %esi
578991:	8b 74 24 08          	mov    0x8(%esp),%esi
578995:	57                   	push   %edi
578996:	85 f6                	test   %esi,%esi
578998:	74 42                	je     0x5789dc
57899a:	8b 7c 24 10          	mov    0x10(%esp),%edi
57899e:	85 ff                	test   %edi,%edi
5789a0:	74 3a                	je     0x5789dc
5789a2:	68 9f 01 00 00       	push   $0x19f
5789a7:	8d 04 7d 01 00 00 00 	lea    0x1(,%edi,2),%eax
5789ae:	03 c7                	add    %edi,%eax
5789b0:	68 bc d3 6b 00       	push   $0x6bd3bc
5789b5:	50                   	push   %eax
5789b6:	e8 f5 77 f2 ff       	call   0x4a01b0
5789bb:	8b d0                	mov    %eax,%edx
5789bd:	83 c4 0c             	add    $0xc,%esp
5789c0:	85 d2                	test   %edx,%edx
5789c2:	75 1d                	jne    0x5789e1
5789c4:	68 a0 01 00 00       	push   $0x1a0
5789c9:	68 bc d3 6b 00       	push   $0x6bd3bc
5789ce:	6a 41                	push   $0x41
5789d0:	6a 6f                	push   $0x6f
5789d2:	6a 22                	push   $0x22
5789d4:	e8 c7 8a f2 ff       	call   0x4a14a0
5789d9:	83 c4 14             	add    $0x14,%esp
5789dc:	5f                   	pop    %edi
5789dd:	33 c0                	xor    %eax,%eax
5789df:	5e                   	pop    %esi
5789e0:	c3                   	ret
5789e1:	85 ff                	test   %edi,%edi
5789e3:	7e 2f                	jle    0x578a14
5789e5:	0f b6 0e             	movzbl (%esi),%ecx
5789e8:	8d 76 01             	lea    0x1(%esi),%esi
5789eb:	c1 e9 04             	shr    $0x4,%ecx
5789ee:	0f b6 89 a8 d3 6b 00 	movzbl 0x6bd3a8(%ecx),%ecx
5789f5:	88 08                	mov    %cl,(%eax)
5789f7:	0f b6 4e ff          	movzbl -0x1(%esi),%ecx
5789fb:	83 e1 0f             	and    $0xf,%ecx
5789fe:	0f b6 89 a8 d3 6b 00 	movzbl 0x6bd3a8(%ecx),%ecx
578a05:	88 48 01             	mov    %cl,0x1(%eax)
578a08:	c6 40 02 3a          	movb   $0x3a,0x2(%eax)
578a0c:	83 c0 03             	add    $0x3,%eax
578a0f:	83 ef 01             	sub    $0x1,%edi
578a12:	75 d1                	jne    0x5789e5
578a14:	5f                   	pop    %edi
578a15:	c6 40 ff 00          	movb   $0x0,-0x1(%eax)
578a19:	8b c2                	mov    %edx,%eax
578a1b:	5e                   	pop    %esi
578a1c:	c3                   	ret
578a1d:	cc                   	int3
578a1e:	cc                   	int3
578a1f:	cc                   	int3
578a20:	8b 44 24 08          	mov    0x8(%esp),%eax
578a24:	56                   	push   %esi
578a25:	33 f6                	xor    %esi,%esi
578a27:	85 c0                	test   %eax,%eax
578a29:	75 02                	jne    0x578a2d
578a2b:	5e                   	pop    %esi
578a2c:	c3                   	ret
578a2d:	57                   	push   %edi
578a2e:	6a 00                	push   $0x0
578a30:	50                   	push   %eax
578a31:	e8 0a 41 01 00       	call   0x58cb40
578a36:	8b f8                	mov    %eax,%edi
578a38:	83 c4 08             	add    $0x8,%esp
578a3b:	85 ff                	test   %edi,%edi
578a3d:	74 0f                	je     0x578a4e
578a3f:	57                   	push   %edi
578a40:	e8 6b bf f3 ff       	call   0x4b49b0
578a45:	8b f0                	mov    %eax,%esi
578a47:	83 c4 04             	add    $0x4,%esp
578a4a:	85 f6                	test   %esi,%esi
578a4c:	75 18                	jne    0x578a66
578a4e:	68 9d 00 00 00       	push   $0x9d
578a53:	68 bc d3 6b 00       	push   $0x6bd3bc
578a58:	6a 41                	push   $0x41
578a5a:	6a 79                	push   $0x79
578a5c:	6a 22                	push   $0x22
578a5e:	e8 3d 8a f2 ff       	call   0x4a14a0
578a63:	83 c4 14             	add    $0x14,%esp
578a66:	57                   	push   %edi
578a67:	e8 74 a7 f3 ff       	call   0x4b31e0
578a6c:	83 c4 04             	add    $0x4,%esp
578a6f:	8b c6                	mov    %esi,%eax
578a71:	5f                   	pop    %edi
578a72:	5e                   	pop    %esi
578a73:	c3                   	ret
578a74:	cc                   	int3
578a75:	cc                   	int3
578a76:	cc                   	int3
578a77:	cc                   	int3
578a78:	cc                   	int3
578a79:	cc                   	int3
578a7a:	cc                   	int3
578a7b:	cc                   	int3
578a7c:	cc                   	int3
578a7d:	cc                   	int3
578a7e:	cc                   	int3
578a7f:	cc                   	int3
578a80:	8b 44 24 08          	mov    0x8(%esp),%eax
578a84:	56                   	push   %esi
578a85:	33 f6                	xor    %esi,%esi
578a87:	85 c0                	test   %eax,%eax
578a89:	75 02                	jne    0x578a8d
578a8b:	5e                   	pop    %esi
578a8c:	c3                   	ret
578a8d:	57                   	push   %edi
578a8e:	6a 00                	push   $0x0
578a90:	50                   	push   %eax
578a91:	e8 4a b5 f3 ff       	call   0x4b3fe0
578a96:	8b f8                	mov    %eax,%edi
578a98:	83 c4 08             	add    $0x8,%esp
578a9b:	85 ff                	test   %edi,%edi
578a9d:	74 0f                	je     0x578aae
578a9f:	57                   	push   %edi
578aa0:	e8 0b bf f3 ff       	call   0x4b49b0
578aa5:	8b f0                	mov    %eax,%esi
578aa7:	83 c4 04             	add    $0x4,%esp
578aaa:	85 f6                	test   %esi,%esi
578aac:	75 18                	jne    0x578ac6
578aae:	68 aa 00 00 00       	push   $0xaa
578ab3:	68 bc d3 6b 00       	push   $0x6bd3bc
578ab8:	6a 41                	push   $0x41
578aba:	6a 78                	push   $0x78
578abc:	6a 22                	push   $0x22
578abe:	e8 dd 89 f2 ff       	call   0x4a14a0
578ac3:	83 c4 14             	add    $0x14,%esp
578ac6:	57                   	push   %edi
578ac7:	e8 14 a7 f3 ff       	call   0x4b31e0
578acc:	83 c4 04             	add    $0x4,%esp
578acf:	8b c6                	mov    %esi,%eax
578ad1:	5f                   	pop    %edi
578ad2:	5e                   	pop    %esi
578ad3:	c3                   	ret
578ad4:	cc                   	int3
578ad5:	cc                   	int3
578ad6:	cc                   	int3
578ad7:	cc                   	int3
578ad8:	cc                   	int3
578ad9:	cc                   	int3
578ada:	cc                   	int3
578adb:	cc                   	int3
578adc:	cc                   	int3
578add:	cc                   	int3
578ade:	cc                   	int3
578adf:	cc                   	int3
578ae0:	b8 10 00 00 00       	mov    $0x10,%eax
578ae5:	e8 06 8a 06 00       	call   0x5e14f0
578aea:	8d 04 24             	lea    (%esp),%eax
578aed:	50                   	push   %eax
578aee:	8d 44 24 10          	lea    0x10(%esp),%eax
578af2:	50                   	push   %eax
578af3:	8d 44 24 10          	lea    0x10(%esp),%eax
578af7:	50                   	push   %eax
578af8:	8d 44 24 10          	lea    0x10(%esp),%eax
578afc:	50                   	push   %eax
578afd:	68 24 d4 6b 00       	push   $0x6bd424
578b02:	ff 74 24 2c          	push   0x2c(%esp)
578b06:	e8 15 24 f1 ff       	call   0x48af20
578b0b:	83 c4 18             	add    $0x18,%esp
578b0e:	83 f8 04             	cmp    $0x4,%eax
578b11:	74 06                	je     0x578b19
578b13:	33 c0                	xor    %eax,%eax
578b15:	83 c4 10             	add    $0x10,%esp
578b18:	c3                   	ret
578b19:	8b 4c 24 04          	mov    0x4(%esp),%ecx
578b1d:	53                   	push   %ebx
578b1e:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
578b24:	77 3f                	ja     0x578b65
578b26:	8b 54 24 0c          	mov    0xc(%esp),%edx
578b2a:	81 fa ff 00 00 00    	cmp    $0xff,%edx
578b30:	77 33                	ja     0x578b65
578b32:	8b 5c 24 10          	mov    0x10(%esp),%ebx
578b36:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
578b3c:	77 27                	ja     0x578b65
578b3e:	81 7c 24 04 ff 00 00 	cmpl   $0xff,0x4(%esp)
578b45:	00
578b46:	77 1d                	ja     0x578b65
578b48:	8b 44 24 18          	mov    0x18(%esp),%eax
578b4c:	88 08                	mov    %cl,(%eax)
578b4e:	8b 4c 24 04          	mov    0x4(%esp),%ecx
578b52:	88 58 02             	mov    %bl,0x2(%eax)
578b55:	88 50 01             	mov    %dl,0x1(%eax)
578b58:	88 48 03             	mov    %cl,0x3(%eax)
578b5b:	b8 01 00 00 00       	mov    $0x1,%eax
578b60:	5b                   	pop    %ebx
578b61:	83 c4 10             	add    $0x10,%esp
578b64:	c3                   	ret
578b65:	33 c0                	xor    %eax,%eax
578b67:	5b                   	pop    %ebx
578b68:	83 c4 10             	add    $0x10,%esp
578b6b:	c3                   	ret
578b6c:	cc                   	int3
578b6d:	cc                   	int3
578b6e:	cc                   	int3
578b6f:	cc                   	int3
578b70:	56                   	push   %esi
578b71:	8b 74 24 10          	mov    0x10(%esp),%esi
578b75:	8b 46 10             	mov    0x10(%esi),%eax
578b78:	83 f8 10             	cmp    $0x10,%eax
578b7b:	75 04                	jne    0x578b81
578b7d:	33 c0                	xor    %eax,%eax
578b7f:	5e                   	pop    %esi
578b80:	c3                   	ret
578b81:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
578b85:	85 c9                	test   %ecx,%ecx
578b87:	75 23                	jne    0x578bac
578b89:	8b 4e 14             	mov    0x14(%esi),%ecx
578b8c:	83 f9 ff             	cmp    $0xffffffff,%ecx
578b8f:	75 0d                	jne    0x578b9e
578b91:	ff 46 18             	incl   0x18(%esi)
578b94:	89 46 14             	mov    %eax,0x14(%esi)
578b97:	b8 01 00 00 00       	mov    $0x1,%eax
578b9c:	5e                   	pop    %esi
578b9d:	c3                   	ret
578b9e:	3b c8                	cmp    %eax,%ecx
578ba0:	75 db                	jne    0x578b7d
578ba2:	ff 46 18             	incl   0x18(%esi)
578ba5:	b8 01 00 00 00       	mov    $0x1,%eax
578baa:	5e                   	pop    %esi
578bab:	c3                   	ret
578bac:	83 f9 04             	cmp    $0x4,%ecx
578baf:	7e 2a                	jle    0x578bdb
578bb1:	83 f8 0c             	cmp    $0xc,%eax
578bb4:	7f c7                	jg     0x578b7d
578bb6:	8b 54 24 08          	mov    0x8(%esp),%edx
578bba:	80 3c 0a 00          	cmpb   $0x0,(%edx,%ecx,1)
578bbe:	75 bd                	jne    0x578b7d
578bc0:	52                   	push   %edx
578bc1:	03 c6                	add    %esi,%eax
578bc3:	50                   	push   %eax
578bc4:	e8 17 ff ff ff       	call   0x578ae0
578bc9:	83 c4 08             	add    $0x8,%esp
578bcc:	85 c0                	test   %eax,%eax
578bce:	74 ad                	je     0x578b7d
578bd0:	83 46 10 04          	addl   $0x4,0x10(%esi)
578bd4:	b8 01 00 00 00       	mov    $0x1,%eax
578bd9:	5e                   	pop    %esi