559928:	75 4f                	jne    0x559979
55992a:	0f be 07             	movsbl (%edi),%eax
55992d:	50                   	push   %eax
55992e:	ff 76 1c             	push   0x1c(%esi)
559931:	e8 3a 9a 07 00       	call   0x5d3370
559936:	83 c4 08             	add    $0x8,%esp
559939:	85 c0                	test   %eax,%eax
55993b:	75 1d                	jne    0x55995a
55993d:	8a 47 01             	mov    0x1(%edi),%al
559940:	47                   	inc    %edi
559941:	84 c0                	test   %al,%al
559943:	75 d2                	jne    0x559917
559945:	5f                   	pop    %edi
559946:	5e                   	pop    %esi
559947:	5d                   	pop    %ebp
559948:	33 c0                	xor    %eax,%eax
55994a:	5b                   	pop    %ebx
55994b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
55994f:	33 cc                	xor    %esp,%ecx
559951:	e8 d0 80 07 00       	call   0x5d1a26
559956:	83 c4 24             	add    $0x24,%esp
559959:	c3                   	ret
55995a:	8b 46 1c             	mov    0x1c(%esi),%eax
55995d:	8b 4e 0c             	mov    0xc(%esi),%ecx
559960:	5f                   	pop    %edi
559961:	5e                   	pop    %esi
559962:	8a 00                	mov    (%eax),%al
559964:	5d                   	pop    %ebp
559965:	88 01                	mov    %al,(%ecx)
559967:	33 c0                	xor    %eax,%eax
559969:	5b                   	pop    %ebx
55996a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
55996e:	33 cc                	xor    %esp,%ecx
559970:	e8 b1 80 07 00       	call   0x5d1a26
559975:	83 c4 24             	add    $0x24,%esp
559978:	c3                   	ret
559979:	8b 46 18             	mov    0x18(%esi),%eax
55997c:	8b 4e 0c             	mov    0xc(%esi),%ecx
55997f:	5f                   	pop    %edi
559980:	5e                   	pop    %esi
559981:	8a 00                	mov    (%eax),%al
559983:	5d                   	pop    %ebp
559984:	88 01                	mov    %al,(%ecx)
559986:	33 c0                	xor    %eax,%eax
559988:	5b                   	pop    %ebx
559989:	8b 4c 24 20          	mov    0x20(%esp),%ecx
55998d:	33 cc                	xor    %esp,%ecx
55998f:	e8 92 80 07 00       	call   0x5d1a26
559994:	83 c4 24             	add    $0x24,%esp
559997:	c3                   	ret
559998:	ff 76 14             	push   0x14(%esi)
55999b:	8d 44 24 24          	lea    0x24(%esp),%eax
55999f:	68 c8 7a 60 00       	push   $0x607ac8
5599a4:	6a 0d                	push   $0xd
5599a6:	50                   	push   %eax
5599a7:	e8 84 8c f8 ff       	call   0x4e2630
5599ac:	ff 76 18             	push   0x18(%esi)
5599af:	8d 44 24 24          	lea    0x24(%esp),%eax
5599b3:	68 c8 7a 60 00       	push   $0x607ac8
5599b8:	6a 0d                	push   $0xd
5599ba:	50                   	push   %eax
5599bb:	e8 70 8c f8 ff       	call   0x4e2630
5599c0:	83 c4 20             	add    $0x20,%esp
5599c3:	3b 6e 14             	cmp    0x14(%esi),%ebp
5599c6:	7d 52                	jge    0x559a1a
5599c8:	68 89 03 00 00       	push   $0x389
5599cd:	68 b8 f4 64 00       	push   $0x64f4b8
5599d2:	6a 65                	push   $0x65
5599d4:	83 4b 10 01          	orl    $0x1,0x10(%ebx)
5599d8:	6a 78                	push   $0x78
5599da:	6a 28                	push   $0x28
5599dc:	e8 9f f5 f7 ff       	call   0x4d8f80
5599e1:	68 3c f5 64 00       	push   $0x64f53c
5599e6:	8d 44 24 28          	lea    0x28(%esp),%eax
5599ea:	50                   	push   %eax
5599eb:	68 bc 76 60 00       	push   $0x6076bc
5599f0:	8d 44 24 40          	lea    0x40(%esp),%eax
5599f4:	50                   	push   %eax
5599f5:	68 48 f5 64 00       	push   $0x64f548
5599fa:	6a 05                	push   $0x5
5599fc:	e8 6f ec f7 ff       	call   0x4d8670
559a01:	83 c4 2c             	add    $0x2c,%esp
559a04:	5f                   	pop    %edi
559a05:	5e                   	pop    %esi
559a06:	5d                   	pop    %ebp
559a07:	83 c8 ff             	or     $0xffffffff,%eax
559a0a:	5b                   	pop    %ebx
559a0b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
559a0f:	33 cc                	xor    %esp,%ecx
559a11:	e8 10 80 07 00       	call   0x5d1a26
559a16:	83 c4 24             	add    $0x24,%esp
559a19:	c3                   	ret
559a1a:	3b 6e 18             	cmp    0x18(%esi),%ebp
559a1d:	7e 0e                	jle    0x559a2d
559a1f:	68 90 03 00 00       	push   $0x390
559a24:	68 b8 f4 64 00       	push   $0x64f4b8
559a29:	6a 64                	push   $0x64
559a2b:	eb a7                	jmp    0x5599d4
559a2d:	8b 46 0c             	mov    0xc(%esi),%eax
559a30:	85 c0                	test   %eax,%eax
559a32:	75 1a                	jne    0x559a4e
559a34:	68 98 03 00 00       	push   $0x398
559a39:	68 b8 f4 64 00       	push   $0x64f4b8
559a3e:	6a 69                	push   $0x69
559a40:	6a 78                	push   $0x78
559a42:	6a 28                	push   $0x28
559a44:	e8 37 f5 f7 ff       	call   0x4d8f80
559a49:	83 c4 14             	add    $0x14,%esp
559a4c:	eb b6                	jmp    0x559a04
559a4e:	55                   	push   %ebp
559a4f:	57                   	push   %edi
559a50:	50                   	push   %eax
559a51:	e8 7a 93 07 00       	call   0x5d2dd0
559a56:	83 c4 0c             	add    $0xc,%esp
559a59:	3b 6e 18             	cmp    0x18(%esi),%ebp
559a5c:	7f 07                	jg     0x559a65
559a5e:	8b 46 0c             	mov    0xc(%esi),%eax
559a61:	c6 04 28 00          	movb   $0x0,(%eax,%ebp,1)
559a65:	89 6e 10             	mov    %ebp,0x10(%esi)
559a68:	8b 4c 24 30          	mov    0x30(%esp),%ecx
559a6c:	33 c0                	xor    %eax,%eax
559a6e:	5f                   	pop    %edi
559a6f:	5e                   	pop    %esi
559a70:	5d                   	pop    %ebp
559a71:	5b                   	pop    %ebx
559a72:	33 cc                	xor    %esp,%ecx
559a74:	e8 ad 7f 07 00       	call   0x5d1a26
559a79:	83 c4 24             	add    $0x24,%esp
559a7c:	c3                   	ret
559a7d:	cc                   	int3
559a7e:	cc                   	int3
559a7f:	cc                   	int3
559a80:	56                   	push   %esi
559a81:	8b 74 24 08          	mov    0x8(%esp),%esi
559a85:	f6 46 20 01          	testb  $0x1,0x20(%esi)
559a89:	74 47                	je     0x559ad2
559a8b:	6a 37                	push   $0x37
559a8d:	68 b8 f4 64 00       	push   $0x64f4b8
559a92:	ff 76 04             	push   0x4(%esi)
559a95:	e8 e6 6c f8 ff       	call   0x4e0780
559a9a:	83 c4 0c             	add    $0xc,%esp
559a9d:	83 3e 03             	cmpl   $0x3,(%esi)
559aa0:	75 30                	jne    0x559ad2
559aa2:	6a 3a                	push   $0x3a
559aa4:	68 b8 f4 64 00       	push   $0x64f4b8
559aa9:	ff 76 14             	push   0x14(%esi)
559aac:	e8 cf 6c f8 ff       	call   0x4e0780
559ab1:	6a 3b                	push   $0x3b
559ab3:	68 b8 f4 64 00       	push   $0x64f4b8
559ab8:	ff 76 18             	push   0x18(%esi)
559abb:	e8 c0 6c f8 ff       	call   0x4e0780
559ac0:	6a 3c                	push   $0x3c
559ac2:	68 b8 f4 64 00       	push   $0x64f4b8
559ac7:	ff 76 1c             	push   0x1c(%esi)
559aca:	e8 b1 6c f8 ff       	call   0x4e0780
559acf:	83 c4 24             	add    $0x24,%esp
559ad2:	6a 46                	push   $0x46
559ad4:	68 b8 f4 64 00       	push   $0x64f4b8
559ad9:	56                   	push   %esi
559ada:	e8 a1 6c f8 ff       	call   0x4e0780
559adf:	83 c4 0c             	add    $0xc,%esp
559ae2:	5e                   	pop    %esi
559ae3:	c3                   	ret
559ae4:	cc                   	int3
559ae5:	cc                   	int3
559ae6:	cc                   	int3
559ae7:	cc                   	int3
559ae8:	cc                   	int3
559ae9:	cc                   	int3
559aea:	cc                   	int3
559aeb:	cc                   	int3
559aec:	cc                   	int3
559aed:	cc                   	int3
559aee:	cc                   	int3
559aef:	cc                   	int3
559af0:	b8 24 00 00 00       	mov    $0x24,%eax
559af5:	e8 b6 7c 07 00       	call   0x5d17b0
559afa:	8b 4c 24 30          	mov    0x30(%esp),%ecx
559afe:	0f 57 c0             	xorps  %xmm0,%xmm0
559b01:	8b 44 24 28          	mov    0x28(%esp),%eax
559b05:	89 44 24 04          	mov    %eax,0x4(%esp)
559b09:	66 0f 13 44 24 08    	movlpd %xmm0,0x8(%esp)
559b0f:	8b 01                	mov    (%ecx),%eax
559b11:	66 0f 13 44 24 10    	movlpd %xmm0,0x10(%esp)
559b17:	66 0f 13 44 24 18    	movlpd %xmm0,0x18(%esp)
559b1d:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
559b24:	00
559b25:	c7 04 24 05 00 00 00 	movl   $0x5,(%esp)
559b2c:	8b 40 08             	mov    0x8(%eax),%eax
559b2f:	85 c0                	test   %eax,%eax
559b31:	74 15                	je     0x559b48
559b33:	8d 14 24             	lea    (%esp),%edx
559b36:	52                   	push   %edx
559b37:	51                   	push   %ecx
559b38:	ff d0                	call   *%eax
559b3a:	83 c4 08             	add    $0x8,%esp
559b3d:	85 c0                	test   %eax,%eax
559b3f:	7f 07                	jg     0x559b48
559b41:	83 c8 ff             	or     $0xffffffff,%eax
559b44:	83 c4 24             	add    $0x24,%esp
559b47:	c3                   	ret
559b48:	33 c0                	xor    %eax,%eax
559b4a:	83 c4 24             	add    $0x24,%esp
559b4d:	c3                   	ret
559b4e:	cc                   	int3
559b4f:	cc                   	int3
559b50:	b8 08 00 00 00       	mov    $0x8,%eax
559b55:	e8 56 7c 07 00       	call   0x5d17b0
559b5a:	56                   	push   %esi
559b5b:	57                   	push   %edi
559b5c:	8d 44 24 08          	lea    0x8(%esp),%eax
559b60:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
559b67:	00
559b68:	50                   	push   %eax
559b69:	ff 74 24 20          	push   0x20(%esp)
559b6d:	33 f6                	xor    %esi,%esi
559b6f:	e8 ac 00 00 00       	call   0x559c20
559b74:	8b 7c 24 10          	mov    0x10(%esp),%edi
559b78:	8b c8                	mov    %eax,%ecx
559b7a:	83 c4 08             	add    $0x8,%esp
559b7d:	85 c9                	test   %ecx,%ecx
559b7f:	78 1a                	js     0x559b9b
559b81:	8b 47 04             	mov    0x4(%edi),%eax
559b84:	89 44 24 0c          	mov    %eax,0xc(%esp)
559b88:	8d 44 24 0c          	lea    0xc(%esp),%eax
559b8c:	51                   	push   %ecx
559b8d:	50                   	push   %eax
559b8e:	ff 74 24 28          	push   0x28(%esp)
559b92:	ff 54 24 24          	call   *0x24(%esp)
559b96:	83 c4 0c             	add    $0xc,%esp
559b99:	8b f0                	mov    %eax,%esi
559b9b:	57                   	push   %edi
559b9c:	e8 ef 19 fb ff       	call   0x50b590
559ba1:	83 c4 04             	add    $0x4,%esp
559ba4:	8b c6                	mov    %esi,%eax
559ba6:	5f                   	pop    %edi
559ba7:	5e                   	pop    %esi
559ba8:	83 c4 08             	add    $0x8,%esp
559bab:	c3                   	ret
559bac:	cc                   	int3
559bad:	cc                   	int3
559bae:	cc                   	int3
559baf:	cc                   	int3
559bb0:	b8 08 00 00 00       	mov    $0x8,%eax
559bb5:	e8 f6 7b 07 00       	call   0x5d17b0
559bba:	56                   	push   %esi
559bbb:	57                   	push   %edi
559bbc:	8d 44 24 08          	lea    0x8(%esp),%eax
559bc0:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
559bc7:	00
559bc8:	50                   	push   %eax
559bc9:	ff 74 24 1c          	push   0x1c(%esp)
559bcd:	33 f6                	xor    %esi,%esi
559bcf:	e8 4c 00 00 00       	call   0x559c20
559bd4:	8b 7c 24 10          	mov    0x10(%esp),%edi
559bd8:	8b c8                	mov    %eax,%ecx
559bda:	83 c4 08             	add    $0x8,%esp
559bdd:	85 c9                	test   %ecx,%ecx
559bdf:	78 1f                	js     0x559c00
559be1:	ff 74 24 14          	push   0x14(%esp)
559be5:	8b 47 04             	mov    0x4(%edi),%eax
559be8:	89 44 24 10          	mov    %eax,0x10(%esp)
559bec:	8d 44 24 10          	lea    0x10(%esp),%eax
559bf0:	51                   	push   %ecx
559bf1:	50                   	push   %eax
559bf2:	ff 74 24 28          	push   0x28(%esp)
559bf6:	e8 55 2a f9 ff       	call   0x4ec650
559bfb:	83 c4 10             	add    $0x10,%esp
559bfe:	8b f0                	mov    %eax,%esi
559c00:	57                   	push   %edi
559c01:	e8 8a 19 fb ff       	call   0x50b590
559c06:	83 c4 04             	add    $0x4,%esp
559c09:	8b c6                	mov    %esi,%eax
559c0b:	5f                   	pop    %edi
559c0c:	5e                   	pop    %esi
559c0d:	83 c4 08             	add    $0x8,%esp
559c10:	c3                   	ret
559c11:	cc                   	int3
559c12:	cc                   	int3
559c13:	cc                   	int3
559c14:	cc                   	int3
559c15:	cc                   	int3
559c16:	cc                   	int3
559c17:	cc                   	int3
559c18:	cc                   	int3
559c19:	cc                   	int3
559c1a:	cc                   	int3
559c1b:	cc                   	int3
559c1c:	cc                   	int3
559c1d:	cc                   	int3
559c1e:	cc                   	int3
559c1f:	cc                   	int3
559c20:	b8 20 00 00 00       	mov    $0x20,%eax
559c25:	e8 86 7b 07 00       	call   0x5d17b0
559c2a:	53                   	push   %ebx
559c2b:	56                   	push   %esi
559c2c:	57                   	push   %edi
559c2d:	33 f6                	xor    %esi,%esi
559c2f:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
559c36:	00
559c37:	89 74 24 10          	mov    %esi,0x10(%esp)
559c3b:	33 ff                	xor    %edi,%edi
559c3d:	e8 7e 1b fb ff       	call   0x50b7c0
559c42:	8b d8                	mov    %eax,%ebx
559c44:	89 5c 24 14          	mov    %ebx,0x14(%esp)
559c48:	85 db                	test   %ebx,%ebx
559c4a:	75 1f                	jne    0x559c6b
559c4c:	6a 6e                	push   $0x6e
559c4e:	68 5c f5 64 00       	push   $0x64f55c
559c53:	6a 41                	push   $0x41
559c55:	6a 6b                	push   $0x6b
559c57:	6a 0d                	push   $0xd
559c59:	e8 22 f3 f7 ff       	call   0x4d8f80
559c5e:	83 c4 14             	add    $0x14,%esp
559c61:	83 c8 ff             	or     $0xffffffff,%eax
559c64:	5f                   	pop    %edi
559c65:	5e                   	pop    %esi
559c66:	5b                   	pop    %ebx
559c67:	83 c4 20             	add    $0x20,%esp
559c6a:	c3                   	ret
559c6b:	e8 50 eb f7 ff       	call   0x4d87c0
559c70:	55                   	push   %ebp
559c71:	8b ef                	mov    %edi,%ebp
559c73:	2b ee                	sub    %esi,%ebp
559c75:	83 fd 08             	cmp    $0x8,%ebp
559c78:	77 55                	ja     0x559ccf
559c7a:	2b f7                	sub    %edi,%esi
559c7c:	83 c6 08             	add    $0x8,%esi
559c7f:	8d 04 37             	lea    (%edi,%esi,1),%eax
559c82:	3b c7                	cmp    %edi,%eax
559c84:	0f 82 bb 01 00 00    	jb     0x559e45
559c8a:	50                   	push   %eax
559c8b:	53                   	push   %ebx
559c8c:	e8 2f 1a fb ff       	call   0x50b6c0
559c91:	83 c4 08             	add    $0x8,%esp
559c94:	85 c0                	test   %eax,%eax
559c96:	0f 84 a9 01 00 00    	je     0x559e45
559c9c:	8b 43 04             	mov    0x4(%ebx),%eax
559c9f:	56                   	push   %esi
559ca0:	03 c7                	add    %edi,%eax
559ca2:	50                   	push   %eax
559ca3:	ff 74 24 3c          	push   0x3c(%esp)
559ca7:	e8 94 f7 f9 ff       	call   0x4f9440
559cac:	83 c4 0c             	add    $0xc,%esp
559caf:	85 c0                	test   %eax,%eax
559cb1:	79 0a                	jns    0x559cbd
559cb3:	85 ed                	test   %ebp,%ebp
559cb5:	0f 84 75 01 00 00    	je     0x559e30
559cbb:	85 c0                	test   %eax,%eax
559cbd:	7e 0c                	jle    0x559ccb