562de2:	7f 0a                	jg     0x562dee
562de4:	66 8b 48 16          	mov    0x16(%eax),%cx
562de8:	66 3b 4e 16          	cmp    0x16(%esi),%cx
562dec:	7e 3c                	jle    0x562e2a
562dee:	3b 3e                	cmp    (%esi),%edi
562df0:	75 19                	jne    0x562e0b
562df2:	3b 56 04             	cmp    0x4(%esi),%edx
562df5:	75 14                	jne    0x562e0b
562df7:	66 8b 48 14          	mov    0x14(%eax),%cx
562dfb:	66 3b 4e 14          	cmp    0x14(%esi),%cx
562dff:	7c 0a                	jl     0x562e0b
562e01:	66 8b 48 16          	mov    0x16(%eax),%cx
562e05:	66 3b 4e 16          	cmp    0x16(%esi),%cx
562e09:	7d 13                	jge    0x562e1e
562e0b:	8a 4e 10             	mov    0x10(%esi),%cl
562e0e:	83 c0 34             	add    $0x34,%eax
562e11:	89 45 08             	mov    %eax,0x8(%ebp)
562e14:	8b 00                	mov    (%eax),%eax
562e16:	85 c0                	test   %eax,%eax
562e18:	0f 85 52 ff ff ff    	jne    0x562d70
562e1e:	8b 4d 08             	mov    0x8(%ebp),%ecx
562e21:	5f                   	pop    %edi
562e22:	5e                   	pop    %esi
562e23:	8b c1                	mov    %ecx,%eax
562e25:	5b                   	pop    %ebx
562e26:	8b e5                	mov    %ebp,%esp
562e28:	5d                   	pop    %ebp
562e29:	c3                   	ret
562e2a:	5f                   	pop    %edi
562e2b:	5e                   	pop    %esi
562e2c:	33 c0                	xor    %eax,%eax
562e2e:	5b                   	pop    %ebx
562e2f:	8b e5                	mov    %ebp,%esp
562e31:	5d                   	pop    %ebp
562e32:	c3                   	ret
562e33:	cc                   	int3
562e34:	cc                   	int3
562e35:	cc                   	int3
562e36:	cc                   	int3
562e37:	cc                   	int3
562e38:	cc                   	int3
562e39:	cc                   	int3
562e3a:	cc                   	int3
562e3b:	cc                   	int3
562e3c:	cc                   	int3
562e3d:	cc                   	int3
562e3e:	cc                   	int3
562e3f:	cc                   	int3
562e40:	55                   	push   %ebp
562e41:	8b ec                	mov    %esp,%ebp
562e43:	8b 4d 08             	mov    0x8(%ebp),%ecx
562e46:	8d 41 38             	lea    0x38(%ecx),%eax
562e49:	c7 41 24 00 00 00 00 	movl   $0x0,0x24(%ecx)
562e50:	89 41 30             	mov    %eax,0x30(%ecx)
562e53:	33 c0                	xor    %eax,%eax
562e55:	66 89 41 28          	mov    %ax,0x28(%ecx)
562e59:	b8 03 00 00 00       	mov    $0x3,%eax
562e5e:	66 89 41 2c          	mov    %ax,0x2c(%ecx)
562e62:	5d                   	pop    %ebp
562e63:	c3                   	ret
562e64:	cc                   	int3
562e65:	cc                   	int3
562e66:	cc                   	int3
562e67:	cc                   	int3
562e68:	cc                   	int3
562e69:	cc                   	int3
562e6a:	cc                   	int3
562e6b:	cc                   	int3
562e6c:	cc                   	int3
562e6d:	cc                   	int3
562e6e:	cc                   	int3
562e6f:	cc                   	int3
562e70:	55                   	push   %ebp
562e71:	8b ec                	mov    %esp,%ebp
562e73:	51                   	push   %ecx
562e74:	57                   	push   %edi
562e75:	8b 7d 08             	mov    0x8(%ebp),%edi
562e78:	8b 0f                	mov    (%edi),%ecx
562e7a:	8b 01                	mov    (%ecx),%eax
562e7c:	8b 00                	mov    (%eax),%eax
562e7e:	89 45 08             	mov    %eax,0x8(%ebp)
562e81:	8b 47 18             	mov    0x18(%edi),%eax
562e84:	85 c0                	test   %eax,%eax
562e86:	75 16                	jne    0x562e9e
562e88:	8b 47 10             	mov    0x10(%edi),%eax
562e8b:	85 c0                	test   %eax,%eax
562e8d:	74 05                	je     0x562e94
562e8f:	33 c9                	xor    %ecx,%ecx
562e91:	66 89 08             	mov    %cx,(%eax)
562e94:	b8 65 00 00 00       	mov    $0x65,%eax
562e99:	5f                   	pop    %edi
562e9a:	8b e5                	mov    %ebp,%esp
562e9c:	5d                   	pop    %ebp
562e9d:	c3                   	ret
562e9e:	53                   	push   %ebx
562e9f:	56                   	push   %esi
562ea0:	8b 75 0c             	mov    0xc(%ebp),%esi
562ea3:	8d 59 3c             	lea    0x3c(%ecx),%ebx
562ea6:	48                   	dec    %eax
562ea7:	89 47 18             	mov    %eax,0x18(%edi)
562eaa:	56                   	push   %esi
562eab:	ff 33                	push   (%ebx)
562ead:	e8 fe fc ff ff       	call   0x562bb0
562eb2:	8b 4f 10             	mov    0x10(%edi),%ecx
562eb5:	83 c4 08             	add    $0x8,%esp
562eb8:	85 c9                	test   %ecx,%ecx
562eba:	74 28                	je     0x562ee4
562ebc:	66 83 7e 28 00       	cmpw   $0x0,0x28(%esi)
562ec1:	74 18                	je     0x562edb
562ec3:	0f b7 46 16          	movzwl 0x16(%esi),%eax
562ec7:	50                   	push   %eax
562ec8:	0f b7 46 14          	movzwl 0x14(%esi),%eax
562ecc:	50                   	push   %eax
562ecd:	ff 76 04             	push   0x4(%esi)
562ed0:	ff 36                	push   (%esi)
562ed2:	51                   	push   %ecx
562ed3:	e8 98 03 00 00       	call   0x563270
562ed8:	83 c4 14             	add    $0x14,%esp
562edb:	5e                   	pop    %esi
562edc:	5b                   	pop    %ebx
562edd:	33 c0                	xor    %eax,%eax
562edf:	5f                   	pop    %edi
562ee0:	8b e5                	mov    %ebp,%esp
562ee2:	5d                   	pop    %ebp
562ee3:	c3                   	ret
562ee4:	56                   	push   %esi
562ee5:	53                   	push   %ebx
562ee6:	e8 65 fe ff ff       	call   0x562d50
562eeb:	8b f8                	mov    %eax,%edi
562eed:	83 c4 08             	add    $0x8,%esp
562ef0:	85 ff                	test   %edi,%edi
562ef2:	74 e7                	je     0x562edb
562ef4:	8b 1f                	mov    (%edi),%ebx
562ef6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
562ef9:	85 db                	test   %ebx,%ebx
562efb:	75 32                	jne    0x562f2f
562efd:	53                   	push   %ebx
562efe:	6a 48                	push   $0x48
562f00:	ff 75 08             	push   0x8(%ebp)
562f03:	e8 d8 e4 fb ff       	call   0x5213e0
562f08:	8b d8                	mov    %eax,%ebx
562f0a:	83 c4 0c             	add    $0xc,%esp
562f0d:	89 1f                	mov    %ebx,(%edi)
562f0f:	85 db                	test   %ebx,%ebx
562f11:	75 0a                	jne    0x562f1d
562f13:	5e                   	pop    %esi
562f14:	8d 43 07             	lea    0x7(%ebx),%eax
562f17:	5b                   	pop    %ebx
562f18:	5f                   	pop    %edi
562f19:	8b e5                	mov    %ebp,%esp
562f1b:	5d                   	pop    %ebp
562f1c:	c3                   	ret
562f1d:	53                   	push   %ebx
562f1e:	e8 1d ff ff ff       	call   0x562e40
562f23:	83 c4 04             	add    $0x4,%esp
562f26:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)
562f2d:	eb 7e                	jmp    0x562fad
562f2f:	83 7b 34 00          	cmpl   $0x0,0x34(%ebx)
562f33:	8d 7b 34             	lea    0x34(%ebx),%edi
562f36:	74 75                	je     0x562fad
562f38:	8b de                	mov    %esi,%ebx
562f3a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
562f40:	53                   	push   %ebx
562f41:	57                   	push   %edi
562f42:	e8 09 fe ff ff       	call   0x562d50
562f47:	8b f8                	mov    %eax,%edi
562f49:	83 c4 08             	add    $0x8,%esp
562f4c:	85 ff                	test   %edi,%edi
562f4e:	74 57                	je     0x562fa7
562f50:	8b 37                	mov    (%edi),%esi
562f52:	85 f6                	test   %esi,%esi
562f54:	74 51                	je     0x562fa7
562f56:	8b 4e 34             	mov    0x34(%esi),%ecx
562f59:	89 0f                	mov    %ecx,(%edi)
562f5b:	8d 4e 38             	lea    0x38(%esi),%ecx
562f5e:	8b 46 30             	mov    0x30(%esi),%eax
562f61:	3b c1                	cmp    %ecx,%eax
562f63:	74 0c                	je     0x562f71
562f65:	50                   	push   %eax
562f66:	ff 75 08             	push   0x8(%ebp)
562f69:	e8 02 e4 fb ff       	call   0x521370
562f6e:	83 c4 08             	add    $0x8,%esp
562f71:	56                   	push   %esi
562f72:	ff 75 08             	push   0x8(%ebp)
562f75:	e8 66 fd ff ff       	call   0x562ce0
562f7a:	8d 46 38             	lea    0x38(%esi),%eax
562f7d:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
562f84:	89 46 30             	mov    %eax,0x30(%esi)
562f87:	33 c0                	xor    %eax,%eax
562f89:	66 89 46 28          	mov    %ax,0x28(%esi)
562f8d:	b8 03 00 00 00       	mov    $0x3,%eax
562f92:	56                   	push   %esi
562f93:	ff 75 08             	push   0x8(%ebp)
562f96:	66 89 46 2c          	mov    %ax,0x2c(%esi)
562f9a:	e8 d1 e3 fb ff       	call   0x521370
562f9f:	83 c4 10             	add    $0x10,%esp
562fa2:	83 3f 00             	cmpl   $0x0,(%edi)
562fa5:	75 99                	jne    0x562f40
562fa7:	8b 5d fc             	mov    -0x4(%ebp),%ebx
562faa:	8b 75 0c             	mov    0xc(%ebp),%esi
562fad:	56                   	push   %esi
562fae:	53                   	push   %ebx
562faf:	ff 75 08             	push   0x8(%ebp)
562fb2:	e8 19 02 00 00       	call   0x5631d0
562fb7:	83 c4 0c             	add    $0xc,%esp
562fba:	f7 43 24 00 04 00 00 	testl  $0x400,0x24(%ebx)
562fc1:	75 19                	jne    0x562fdc
562fc3:	8b 4b 20             	mov    0x20(%ebx),%ecx
562fc6:	85 c9                	test   %ecx,%ecx
562fc8:	74 12                	je     0x562fdc
562fca:	8b 49 38             	mov    0x38(%ecx),%ecx
562fcd:	83 e1 03             	and    $0x3,%ecx
562fd0:	80 f9 03             	cmp    $0x3,%cl
562fd3:	75 07                	jne    0x562fdc
562fd5:	c7 43 20 00 00 00 00 	movl   $0x0,0x20(%ebx)
562fdc:	5e                   	pop    %esi
562fdd:	5b                   	pop    %ebx
562fde:	5f                   	pop    %edi
562fdf:	8b e5                	mov    %ebp,%esp
562fe1:	5d                   	pop    %ebp
562fe2:	c3                   	ret
562fe3:	cc                   	int3
562fe4:	cc                   	int3
562fe5:	cc                   	int3
562fe6:	cc                   	int3
562fe7:	cc                   	int3
562fe8:	cc                   	int3
562fe9:	cc                   	int3
562fea:	cc                   	int3
562feb:	cc                   	int3
562fec:	cc                   	int3
562fed:	cc                   	int3
562fee:	cc                   	int3
562fef:	cc                   	int3
562ff0:	55                   	push   %ebp
562ff1:	8b ec                	mov    %esp,%ebp
562ff3:	83 ec 1c             	sub    $0x1c,%esp
562ff6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
562ffb:	33 c5                	xor    %ebp,%eax
562ffd:	89 45 fc             	mov    %eax,-0x4(%ebp)
563000:	8b 45 08             	mov    0x8(%ebp),%eax
563003:	53                   	push   %ebx
563004:	57                   	push   %edi
563005:	8b 7d 0c             	mov    0xc(%ebp),%edi
563008:	33 db                	xor    %ebx,%ebx
56300a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
56300d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
563010:	8b 0f                	mov    (%edi),%ecx
563012:	0b 4f 08             	or     0x8(%edi),%ecx
563015:	8b 57 04             	mov    0x4(%edi),%edx
563018:	f7 d1                	not    %ecx
56301a:	0b 57 0c             	or     0xc(%edi),%edx
56301d:	f7 d2                	not    %edx
56301f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
563022:	8b 48 0c             	mov    0xc(%eax),%ecx
563025:	89 55 e8             	mov    %edx,-0x18(%ebp)
563028:	8b 50 14             	mov    0x14(%eax),%edx
56302b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
56302e:	85 c9                	test   %ecx,%ecx
563030:	0f 8e 93 00 00 00    	jle    0x5630c9
563036:	56                   	push   %esi
563037:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
56303e:	00 00
563040:	f6 42 0a 02          	testb  $0x2,0xa(%edx)
563044:	0f 85 7e 00 00 00    	jne    0x5630c8
56304a:	8b 72 28             	mov    0x28(%edx),%esi
56304d:	8b ce                	mov    %esi,%ecx
56304f:	8b 5a 2c             	mov    0x2c(%edx),%ebx
563052:	8b c3                	mov    %ebx,%eax
563054:	23 4f 08             	and    0x8(%edi),%ecx
563057:	23 47 0c             	and    0xc(%edi),%eax
56305a:	0b c8                	or     %eax,%ecx
56305c:	74 55                	je     0x5630b3
56305e:	23 75 ec             	and    -0x14(%ebp),%esi
563061:	23 5d e8             	and    -0x18(%ebp),%ebx
563064:	0b f3                	or     %ebx,%esi
563066:	75 4b                	jne    0x5630b3
563068:	0f b7 4f 28          	movzwl 0x28(%edi),%ecx
56306c:	83 e9 01             	sub    $0x1,%ecx
56306f:	78 35                	js     0x5630a6
563071:	8b 47 30             	mov    0x30(%edi),%eax
563074:	8d 34 88             	lea    (%eax,%ecx,4),%esi
563077:	8b 06                	mov    (%esi),%eax
563079:	85 c0                	test   %eax,%eax
56307b:	74 1b                	je     0x563098
56307d:	3b c2                	cmp    %edx,%eax
56307f:	74 21                	je     0x5630a2
563081:	8b 40 10             	mov    0x10(%eax),%eax
563084:	85 c0                	test   %eax,%eax
563086:	78 10                	js     0x563098
563088:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
56308b:	8d 04 40             	lea    (%eax,%eax,2),%eax
56308e:	c1 e0 04             	shl    $0x4,%eax
563091:	03 43 14             	add    0x14(%ebx),%eax
563094:	3b c2                	cmp    %edx,%eax
563096:	74 0a                	je     0x5630a2
563098:	83 ee 04             	sub    $0x4,%esi
56309b:	83 e9 01             	sub    $0x1,%ecx
56309e:	79 d7                	jns    0x563077
5630a0:	eb 04                	jmp    0x5630a6
5630a2:	85 c9                	test   %ecx,%ecx
5630a4:	79 0d                	jns    0x5630b3
5630a6:	0f b7 42 08          	movzwl 0x8(%edx),%eax
5630aa:	66 85 c0             	test   %ax,%ax
5630ad:	7f 43                	jg     0x5630f2
5630af:	66 01 47 16          	add    %ax,0x16(%edi)
5630b3:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5630b6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5630b9:	83 c2 30             	add    $0x30,%edx
5630bc:	49                   	dec    %ecx
5630bd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5630c0:	85 c9                	test   %ecx,%ecx
5630c2:	0f 8f 78 ff ff ff    	jg     0x563040
5630c8:	5e                   	pop    %esi
5630c9:	8b 55 10             	mov    0x10(%ebp),%edx
5630cc:	0f bf c3             	movswl %bx,%eax
5630cf:	0f bf ca             	movswl %dx,%ecx
5630d2:	2b c8                	sub    %eax,%ecx
5630d4:	0f bf 47 16          	movswl 0x16(%edi),%eax
5630d8:	3b c1                	cmp    %ecx,%eax
5630da:	7e 06                	jle    0x5630e2
5630dc:	2b d3                	sub    %ebx,%edx
5630de:	66 89 57 16          	mov    %dx,0x16(%edi)
5630e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5630e5:	5f                   	pop    %edi
5630e6:	33 cd                	xor    %ebp,%ecx
5630e8:	5b                   	pop    %ebx
5630e9:	e8 ec e3 07 00       	call   0x5e14da
5630ee:	8b e5                	mov    %ebp,%esp
5630f0:	5d                   	pop    %ebp
5630f1:	c3                   	ret
5630f2:	66 ff 4f 16          	decw   0x16(%edi)
5630f6:	f6 42 0c 82          	testb  $0x82,0xc(%edx)
5630fa:	74 b7                	je     0x5630b3
5630fc:	8b 02                	mov    (%edx),%eax
5630fe:	8d 4d f8             	lea    -0x8(%ebp),%ecx
563101:	51                   	push   %ecx
563102:	8b 40 10             	mov    0x10(%eax),%eax
563105:	50                   	push   %eax
563106:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
56310d:	e8 0e 43 fc ff       	call   0x527420
563112:	83 c4 08             	add    $0x8,%esp
563115:	85 c0                	test   %eax,%eax
563117:	74 0e                	je     0x563127
563119:	8b 45 f8             	mov    -0x8(%ebp),%eax
56311c:	b9 0a 00 00 00       	mov    $0xa,%ecx
563121:	40                   	inc    %eax
563122:	83 f8 02             	cmp    $0x2,%eax
563125:	76 05                	jbe    0x56312c
563127:	b9 14 00 00 00       	mov    $0x14,%ecx