573d32:	90                   	nop
573d33:	90                   	nop
573d34:	53                   	push   %ebx
573d35:	8d 58 10             	lea    0x10(%eax),%ebx
573d38:	56                   	push   %esi
573d39:	33 c0                	xor    %eax,%eax
573d3b:	8b f2                	mov    %edx,%esi
573d3d:	8a 43 02             	mov    0x2(%ebx),%al
573d40:	50                   	push   %eax
573d41:	33 d2                	xor    %edx,%edx
573d43:	8a 53 01             	mov    0x1(%ebx),%dl
573d46:	33 c9                	xor    %ecx,%ecx
573d48:	52                   	push   %edx
573d49:	8a 0b                	mov    (%ebx),%cl
573d4b:	51                   	push   %ecx
573d4c:	68 ab 1f 6a 00       	push   $0x6a1fab
573d51:	56                   	push   %esi
573d52:	e8 75 63 00 00       	call   0x57a0cc
573d57:	83 c4 14             	add    $0x14,%esp
573d5a:	8a 03                	mov    (%ebx),%al
573d5c:	fe c8                	dec    %al
573d5e:	74 07                	je     0x573d67
573d60:	fe c8                	dec    %al
573d62:	74 18                	je     0x573d7c
573d64:	5e                   	pop    %esi
573d65:	5b                   	pop    %ebx
573d66:	c3                   	ret
573d67:	8b 53 04             	mov    0x4(%ebx),%edx
573d6a:	52                   	push   %edx
573d6b:	68 c9 1f 6a 00       	push   $0x6a1fc9
573d70:	56                   	push   %esi
573d71:	e8 56 63 00 00       	call   0x57a0cc
573d76:	83 c4 0c             	add    $0xc,%esp
573d79:	5e                   	pop    %esi
573d7a:	5b                   	pop    %ebx
573d7b:	c3                   	ret
573d7c:	8b 4b 0c             	mov    0xc(%ebx),%ecx
573d7f:	8b 53 08             	mov    0x8(%ebx),%edx
573d82:	8b c6                	mov    %esi,%eax
573d84:	e8 e7 61 00 00       	call   0x579f70
573d89:	5e                   	pop    %esi
573d8a:	5b                   	pop    %ebx
573d8b:	c3                   	ret
573d8c:	53                   	push   %ebx
573d8d:	56                   	push   %esi
573d8e:	57                   	push   %edi
573d8f:	8b f8                	mov    %eax,%edi
573d91:	8b f2                	mov    %edx,%esi
573d93:	33 c0                	xor    %eax,%eax
573d95:	8d 5f 10             	lea    0x10(%edi),%ebx
573d98:	55                   	push   %ebp
573d99:	33 d2                	xor    %edx,%edx
573d9b:	33 c9                	xor    %ecx,%ecx
573d9d:	89 43 04             	mov    %eax,0x4(%ebx)
573da0:	89 53 08             	mov    %edx,0x8(%ebx)
573da3:	8b d3                	mov    %ebx,%edx
573da5:	89 4b 0c             	mov    %ecx,0xc(%ebx)
573da8:	8b c6                	mov    %esi,%eax
573daa:	e8 3d 04 00 00       	call   0x5741ec
573daf:	85 c0                	test   %eax,%eax
573db1:	75 1c                	jne    0x573dcf
573db3:	8d 53 01             	lea    0x1(%ebx),%edx
573db6:	8b c6                	mov    %esi,%eax
573db8:	e8 2f 04 00 00       	call   0x5741ec
573dbd:	85 c0                	test   %eax,%eax
573dbf:	75 0e                	jne    0x573dcf
573dc1:	8d 53 02             	lea    0x2(%ebx),%edx
573dc4:	8b c6                	mov    %esi,%eax
573dc6:	e8 21 04 00 00       	call   0x5741ec
573dcb:	85 c0                	test   %eax,%eax
573dcd:	74 05                	je     0x573dd4
573dcf:	83 c8 ff             	or     $0xffffffff,%eax
573dd2:	eb 5a                	jmp    0x573e2e
573dd4:	8a 13                	mov    (%ebx),%dl
573dd6:	fe ca                	dec    %dl
573dd8:	74 06                	je     0x573de0
573dda:	fe ca                	dec    %dl
573ddc:	74 15                	je     0x573df3
573dde:	eb 4c                	jmp    0x573e2c
573de0:	8d 53 04             	lea    0x4(%ebx),%edx
573de3:	8b c6                	mov    %esi,%eax
573de5:	e8 2a 05 00 00       	call   0x574314
573dea:	85 c0                	test   %eax,%eax
573dec:	74 3e                	je     0x573e2c
573dee:	83 c8 ff             	or     $0xffffffff,%eax
573df1:	eb 3b                	jmp    0x573e2e
573df3:	8b 6f 0c             	mov    0xc(%edi),%ebp
573df6:	83 ed 08             	sub    $0x8,%ebp
573df9:	83 ed 03             	sub    $0x3,%ebp
573dfc:	89 6b 0c             	mov    %ebp,0xc(%ebx)
573dff:	8b c5                	mov    %ebp,%eax
573e01:	e8 76 45 00 00       	call   0x57837c
573e06:	8b f8                	mov    %eax,%edi
573e08:	89 7b 08             	mov    %edi,0x8(%ebx)
573e0b:	85 ff                	test   %edi,%edi
573e0d:	75 05                	jne    0x573e14
573e0f:	83 c8 ff             	or     $0xffffffff,%eax
573e12:	eb 1a                	jmp    0x573e2e
573e14:	8b 4b 0c             	mov    0xc(%ebx),%ecx
573e17:	8b d7                	mov    %edi,%edx
573e19:	8b c6                	mov    %esi,%eax
573e1b:	e8 60 4a 00 00       	call   0x578880
573e20:	8b 53 0c             	mov    0xc(%ebx),%edx
573e23:	3b c2                	cmp    %edx,%eax
573e25:	74 05                	je     0x573e2c
573e27:	83 c8 ff             	or     $0xffffffff,%eax
573e2a:	eb 02                	jmp    0x573e2e
573e2c:	33 c0                	xor    %eax,%eax
573e2e:	5d                   	pop    %ebp
573e2f:	5f                   	pop    %edi
573e30:	5e                   	pop    %esi
573e31:	5b                   	pop    %ebx
573e32:	c3                   	ret
573e33:	90                   	nop
573e34:	53                   	push   %ebx
573e35:	56                   	push   %esi
573e36:	57                   	push   %edi
573e37:	8b fa                	mov    %edx,%edi
573e39:	8d 70 10             	lea    0x10(%eax),%esi
573e3c:	33 db                	xor    %ebx,%ebx
573e3e:	eb 2c                	jmp    0x573e6c
573e40:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
573e43:	8b 56 04             	mov    0x4(%esi),%edx
573e46:	0f b7 4c 42 04       	movzwl 0x4(%edx,%eax,2),%ecx
573e4b:	51                   	push   %ecx
573e4c:	8b 56 04             	mov    0x4(%esi),%edx
573e4f:	0f b7 4c 42 02       	movzwl 0x2(%edx,%eax,2),%ecx
573e54:	51                   	push   %ecx
573e55:	8b 56 04             	mov    0x4(%esi),%edx
573e58:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
573e5c:	50                   	push   %eax
573e5d:	68 d2 1f 6a 00       	push   $0x6a1fd2
573e62:	57                   	push   %edi
573e63:	e8 64 62 00 00       	call   0x57a0cc
573e68:	83 c4 14             	add    $0x14,%esp
573e6b:	43                   	inc    %ebx
573e6c:	0f b7 0e             	movzwl (%esi),%ecx
573e6f:	3b d9                	cmp    %ecx,%ebx
573e71:	7c cd                	jl     0x573e40
573e73:	5f                   	pop    %edi
573e74:	5e                   	pop    %esi
573e75:	5b                   	pop    %ebx
573e76:	c3                   	ret
573e77:	90                   	nop
573e78:	83 c0 10             	add    $0x10,%eax
573e7b:	8b 50 08             	mov    0x8(%eax),%edx
573e7e:	85 d2                	test   %edx,%edx
573e80:	74 07                	je     0x573e89
573e82:	52                   	push   %edx
573e83:	e8 10 6c fe ff       	call   0x55aa98
573e88:	59                   	pop    %ecx
573e89:	c3                   	ret
573e8a:	90                   	nop
573e8b:	90                   	nop
573e8c:	53                   	push   %ebx
573e8d:	56                   	push   %esi
573e8e:	57                   	push   %edi
573e8f:	55                   	push   %ebp
573e90:	8b fa                	mov    %edx,%edi
573e92:	8d 68 10             	lea    0x10(%eax),%ebp
573e95:	8b d5                	mov    %ebp,%edx
573e97:	8b c7                	mov    %edi,%eax
573e99:	e8 b2 03 00 00       	call   0x574250
573e9e:	85 c0                	test   %eax,%eax
573ea0:	74 05                	je     0x573ea7
573ea2:	83 c8 ff             	or     $0xffffffff,%eax
573ea5:	eb 65                	jmp    0x573f0c
573ea7:	0f b7 55 00          	movzwl 0x0(%ebp),%edx
573eab:	8b c2                	mov    %edx,%eax
573ead:	03 c0                	add    %eax,%eax
573eaf:	8d 04 40             	lea    (%eax,%eax,2),%eax
573eb2:	e8 c5 44 00 00       	call   0x57837c
573eb7:	89 45 04             	mov    %eax,0x4(%ebp)
573eba:	85 c0                	test   %eax,%eax
573ebc:	75 05                	jne    0x573ec3
573ebe:	83 c8 ff             	or     $0xffffffff,%eax
573ec1:	eb 49                	jmp    0x573f0c
573ec3:	33 f6                	xor    %esi,%esi
573ec5:	eb 3b                	jmp    0x573f02
573ec7:	8b c6                	mov    %esi,%eax
573ec9:	8b 5d 04             	mov    0x4(%ebp),%ebx
573ecc:	03 c0                	add    %eax,%eax
573ece:	8d 04 40             	lea    (%eax,%eax,2),%eax
573ed1:	03 d8                	add    %eax,%ebx
573ed3:	8b c7                	mov    %edi,%eax
573ed5:	8b d3                	mov    %ebx,%edx
573ed7:	e8 74 03 00 00       	call   0x574250
573edc:	85 c0                	test   %eax,%eax
573ede:	75 1c                	jne    0x573efc
573ee0:	8d 53 02             	lea    0x2(%ebx),%edx
573ee3:	8b c7                	mov    %edi,%eax
573ee5:	e8 66 03 00 00       	call   0x574250
573eea:	85 c0                	test   %eax,%eax
573eec:	75 0e                	jne    0x573efc
573eee:	8d 53 04             	lea    0x4(%ebx),%edx
573ef1:	8b c7                	mov    %edi,%eax
573ef3:	e8 58 03 00 00       	call   0x574250
573ef8:	85 c0                	test   %eax,%eax
573efa:	74 05                	je     0x573f01
573efc:	83 c8 ff             	or     $0xffffffff,%eax
573eff:	eb 0b                	jmp    0x573f0c
573f01:	46                   	inc    %esi
573f02:	0f b7 55 00          	movzwl 0x0(%ebp),%edx
573f06:	3b f2                	cmp    %edx,%esi
573f08:	7c bd                	jl     0x573ec7
573f0a:	33 c0                	xor    %eax,%eax
573f0c:	5d                   	pop    %ebp
573f0d:	5f                   	pop    %edi
573f0e:	5e                   	pop    %esi
573f0f:	5b                   	pop    %ebx
573f10:	c3                   	ret
573f11:	90                   	nop
573f12:	90                   	nop
573f13:	90                   	nop
573f14:	53                   	push   %ebx
573f15:	56                   	push   %esi
573f16:	57                   	push   %edi
573f17:	55                   	push   %ebp
573f18:	8b d8                	mov    %eax,%ebx
573f1a:	51                   	push   %ecx
573f1b:	89 14 24             	mov    %edx,(%esp)
573f1e:	33 f6                	xor    %esi,%esi
573f20:	8b 43 04             	mov    0x4(%ebx),%eax
573f23:	8b 68 08             	mov    0x8(%eax),%ebp
573f26:	83 e5 03             	and    $0x3,%ebp
573f29:	83 fd 01             	cmp    $0x1,%ebp
573f2c:	1b ed                	sbb    %ebp,%ebp
573f2e:	f7 dd                	neg    %ebp
573f30:	85 ed                	test   %ebp,%ebp
573f32:	74 39                	je     0x573f6d
573f34:	33 d2                	xor    %edx,%edx
573f36:	33 c0                	xor    %eax,%eax
573f38:	e8 df 44 00 00       	call   0x57841c
573f3d:	8b f0                	mov    %eax,%esi
573f3f:	8b 03                	mov    (%ebx),%eax
573f41:	8b 50 0c             	mov    0xc(%eax),%edx
573f44:	85 d2                	test   %edx,%edx
573f46:	74 11                	je     0x573f59
573f48:	8b d6                	mov    %esi,%edx
573f4a:	8b c3                	mov    %ebx,%eax
573f4c:	8b 08                	mov    (%eax),%ecx
573f4e:	ff 51 0c             	call   *0xc(%ecx)
573f51:	85 c0                	test   %eax,%eax
573f53:	0f 85 9a 00 00 00    	jne    0x573ff3
573f59:	8b c6                	mov    %esi,%eax
573f5b:	e8 98 4c 00 00       	call   0x578bf8
573f60:	83 c0 08             	add    $0x8,%eax
573f63:	89 43 0c             	mov    %eax,0xc(%ebx)
573f66:	8b c6                	mov    %esi,%eax
573f68:	e8 ef 4b 00 00       	call   0x578b5c
573f6d:	8b 43 0c             	mov    0xc(%ebx),%eax
573f70:	33 d2                	xor    %edx,%edx
573f72:	83 fa 01             	cmp    $0x1,%edx
573f75:	75 03                	jne    0x573f7a
573f77:	83 f8 00             	cmp    $0x0,%eax
573f7a:	0f 93 c1             	setae  %cl
573f7d:	83 e1 01             	and    $0x1,%ecx
573f80:	85 c9                	test   %ecx,%ecx
573f82:	0f 95 c0             	setne  %al
573f85:	83 e0 01             	and    $0x1,%eax
573f88:	8b f8                	mov    %eax,%edi
573f8a:	85 ff                	test   %edi,%edi
573f8c:	74 07                	je     0x573f95
573f8e:	ba 01 00 00 00       	mov    $0x1,%edx
573f93:	eb 03                	jmp    0x573f98
573f95:	8b 53 0c             	mov    0xc(%ebx),%edx
573f98:	8b 04 24             	mov    (%esp),%eax
573f9b:	e8 18 06 00 00       	call   0x5745b8
573fa0:	85 c0                	test   %eax,%eax
573fa2:	75 4f                	jne    0x573ff3
573fa4:	8b 53 08             	mov    0x8(%ebx),%edx
573fa7:	8b 04 24             	mov    (%esp),%eax
573faa:	e8 09 06 00 00       	call   0x5745b8
573faf:	85 c0                	test   %eax,%eax
573fb1:	75 40                	jne    0x573ff3
573fb3:	85 ff                	test   %edi,%edi
573fb5:	74 14                	je     0x573fcb
573fb7:	8b 43 0c             	mov    0xc(%ebx),%eax
573fba:	33 d2                	xor    %edx,%edx
573fbc:	52                   	push   %edx
573fbd:	50                   	push   %eax
573fbe:	8b 44 24 08          	mov    0x8(%esp),%eax
573fc2:	e8 79 07 00 00       	call   0x574740
573fc7:	85 c0                	test   %eax,%eax
573fc9:	75 28                	jne    0x573ff3
573fcb:	85 ed                	test   %ebp,%ebp
573fcd:	74 1b                	je     0x573fea
573fcf:	8b 4b 0c             	mov    0xc(%ebx),%ecx
573fd2:	83 e9 08             	sub    $0x8,%ecx
573fd5:	8b d6                	mov    %esi,%edx
573fd7:	8b 04 24             	mov    (%esp),%eax
573fda:	e8 49 4f 00 00       	call   0x578f28
573fdf:	85 c0                	test   %eax,%eax
573fe1:	75 10                	jne    0x573ff3
573fe3:	8b c6                	mov    %esi,%eax
573fe5:	e8 52 47 00 00       	call   0x57873c
573fea:	33 c0                	xor    %eax,%eax
573fec:	eb 13                	jmp    0x574001
573fee:	e8 55 6b fe ff       	call   0x55ab48
573ff3:	85 f6                	test   %esi,%esi
573ff5:	74 07                	je     0x573ffe
573ff7:	8b c6                	mov    %esi,%eax
573ff9:	e8 3e 47 00 00       	call   0x57873c
573ffe:	83 c8 ff             	or     $0xffffffff,%eax
574001:	5a                   	pop    %edx
574002:	5d                   	pop    %ebp
574003:	5f                   	pop    %edi
574004:	5e                   	pop    %esi
574005:	5b                   	pop    %ebx
574006:	c3                   	ret
574007:	90                   	nop
574008:	83 c0 10             	add    $0x10,%eax
57400b:	8b 08                	mov    (%eax),%ecx
57400d:	8b c2                	mov    %edx,%eax
57400f:	8b d1                	mov    %ecx,%edx
574011:	e8 a2 05 00 00       	call   0x5745b8
574016:	85 c0                	test   %eax,%eax
574018:	74 04                	je     0x57401e
57401a:	83 c8 ff             	or     $0xffffffff,%eax
57401d:	c3                   	ret
57401e:	33 c0                	xor    %eax,%eax
574020:	c3                   	ret
574021:	90                   	nop
574022:	90                   	nop
574023:	90                   	nop
574024:	53                   	push   %ebx
574025:	56                   	push   %esi
574026:	57                   	push   %edi
574027:	8d 78 10             	lea    0x10(%eax),%edi
57402a:	55                   	push   %ebp
57402b:	8b ea                	mov    %edx,%ebp
57402d:	8b 17                	mov    (%edi),%edx
57402f:	8b c5                	mov    %ebp,%eax
574031:	e8 82 05 00 00       	call   0x5745b8
574036:	85 c0                	test   %eax,%eax
574038:	75 0e                	jne    0x574048
57403a:	8b 57 04             	mov    0x4(%edi),%edx
57403d:	8b c5                	mov    %ebp,%eax
57403f:	e8 74 05 00 00       	call   0x5745b8
574044:	85 c0                	test   %eax,%eax
574046:	74 05                	je     0x57404d
574048:	83 c8 ff             	or     $0xffffffff,%eax
57404b:	eb 26                	jmp    0x574073
57404d:	33 f6                	xor    %esi,%esi
57404f:	8d 5f 0c             	lea    0xc(%edi),%ebx
574052:	eb 16                	jmp    0x57406a
574054:	8b 13                	mov    (%ebx),%edx
574056:	8b c5                	mov    %ebp,%eax
574058:	e8 5b 05 00 00       	call   0x5745b8
57405d:	85 c0                	test   %eax,%eax